1、判空符号
? 表示当前对象可以为空,即可以 = null
!! 表示当前对象不为空的情况下执行
"?"加在变量名后,系统在任何情况不会报它的空指针异常。
"!!"加在变量名后,如果对象为null,那么系统一定会报异常!
/**
* name 可以为空,即name = null;
* 因为name有为空的可能性,所以people使用name时,需要在name后加!!,
* 代表name不为空时执行代码,如果为空,仍会报错;
*/
var name: String? = ""
var people: String = name!!
//一个小知识点,当列表为空时赋值0
val nameList:MutableList<String>? = null
val size = nameList?.size ?: 0
?:作为条件过滤,代表如果为空怎么办
val roomList: ArrayList<Room>? = null
if (roomList?.size ?: 0 > 0) { // 这一行添加了?:
Log.d("TAG", "-->> 房间数不是0")
}