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")
}

博客介绍了编程中的判空符号。“?”表示对象可为空,加在变量名后不会报空指针异常;“!!”表示对象不为空时执行,对象为 null 会报异常;“?:”可作为条件过滤,代表为空时的处理方式,还给出了相关参考链接。
1512

被折叠的 条评论
为什么被折叠?



