?的用法
?表示是否可以为空 比如定义变量
val a:Int = null
val a:Int? = null
如果值出现空后,需要采取一些行动,可以这么写
val name = a?:return
!的用法
!!符号表示不进行判空操作,如果出现问题直接抛出异常
作用域编程用法
let的使用
我也不太清楚这是个啥,直接上实例了,这种作用域方法主要是为了简化代码。 假如我有这样一个需求,就是新建一个对象,并对对象进行一系列操作,那么代码如下:
val alice = Person("Alice", 20, "Amsterdam")
println(alice)
alice.moveTo("London")
alice.incrementAge()
println(alice)
这个操作有些繁琐,比如需要重复多次alice这个变量名。为了解决这个麻烦,可以使用let方法:
Person("Alice", 20, "Amsterdam").let {
println(it)
it.moveTo("London")
it.incrementAge()
println(it)
}
let方法在作用域内使用it来代替变量名,简化了操作。
in和out的使用
https://www.kotlincn.net/docs/reference/generics.html
Object的使用
用object 修饰的类为静态类,里面的方法和变量都为静态的。调用时需要使用"类名.方法名的形式"。 而companion object 修饰为伴生对象,伴生对象在类中只能存在一个,所以这种伴生静态类可以直接调用”方法名“。
open的作用
在java中,如果类或者方法被声明了final,才表示不可以继承,不可重写。但是在kotlin中,对于方法和类都默认是final的形式了,所以需要open关键字让类增加可变性。为类增加open,class就可以被继承了,为方法增加open,那么方法就可以被重写了。
|