kotlin学习笔记
var和val
var:可变变量
var <标识符> : <类型> = <初始化值>
例:
var a :Int? = 10
var b = 10 (编译器支持自动类型判断)
var list :ArrayList<String> ? = null
val:不可变变量(一旦赋值不可修改)
val<标识符> :<类型> = <初始化值>
例:
val a :Int
a = 10
val b :Int = 10
val c :Int = 10
c = 20(错误)
?和!!
?:表示当前对象可以为空
!!:表示当前对象不为空的情况下执行
?系统在任何情况下不会报他的空指针异常
!!:如果对象为null,那么报空指针异常
例:
在Java中:ArrayList<String> list = null
list.size调用的时候会报空指针
在kotlin中:var list:ArrayList<String>? = null
list?.size调用的时候不会报异常
list!!size报异常
扩展:
kotlin的三元二次表达式:
var size = list?.size? : 0
list?.size为null时返回0