Kotlin学习笔记-Kotlin基础-01

变量声明

var:用于值不改变的变量,使用val声明的变量无法重新赋值

val:用于值可以改变的变量

变量声明格式

var/val data(变量名称) : Int(变量类型)

Kotlin基本数据类:

Int、Byte、Short、Long、Float、Double

Kotlin类型推断

Kotlin编译器可以根据所赋值的类型来推断其类型

如val str = “data”

Null安全

Kotlin变量不能持有Null值,如果要使变量持有Null,它必须是可为Null类型,可以在变量类型后面加上?后缀,将变量指定为可为Null。如:

Val languageName:String?=null

?表示可为空

!!表示可能为空的值不为空(非Null断言符)

?:该运算符是处理变量为空的情况

条件语句

If  else if  else

条件语句可作为返回值返回给变量

Val answerString:String = if() {“…”} else if(){“…”} else {“…”}

When类比java的switch,但是判定条件比java灵活

Val answerString = when {

Count == 42 ->””

Couint >= 35 -> “”

Else  -> “”
}

函数

使用fun关键字声明,例如

fun generateAnswerString() : String {

       val answerString = “”

       return answerString

}

带参数的函数

fun generateAnswerString(a : String) :String {

       …

}

匿名函数

val stringLenthFunc: (String)->Int = {input->

       input.length

}

高阶函数:一个函数可以将另一个函数当做参数(类似java中的回调接口)

fun stringMapper(str: String, mapper:(String)->Int):Int {

return mapper(str)

}

类(使用class关键字来定义)

class Car

属性(通过val、var关键字来定义)

Val data : Int = 0

Getter与setter

默认情况下kotlin的属性都自带上述两个方法

如果需要对该属性的获取与赋值进行控制,则需要重写对应方法

类函数和封装

Private关键字

数据类型和单例类

数据类只处理数据相关,与java bean类似,通常需要实现其get、set、hashCode、equals、toString等方法

data class UserBean(val id: String, val name: String, val pwd : String)

单例类

object Singleton {}

Lambda

函数式API

匿名内部类需要使用object

Thread(object: Runnable {

       Override fun run() {

              Println(“test”)

}

}).start()

Null判断

let函数

let不是关键字,而是一个函数,提供了函数式API的编程接口,会将调用者作为参数传递到lambda表达式,调用之后会立马执行lambda表达式的逻辑

obj.let {it -> //it就是obj

}

内嵌表达式

var name = “a”

var age = 20

println(“my name is $name, age is $age”)

使用${}可执行更复杂的操作

println(“${if (1 < 2) “a” else “b”}. test”)

你可能感兴趣的:(kotlin,学习,笔记)