If not null 缩写
val files = File("Test").listFiles()println(files?.size)
If not null and else 缩写
val files = File("Test").listFiles()println(files?.size ?: "empty")
if null 执行一个语句
val values = ……val email = values["email"] ?: throw IllegalStateException("Email is missing!")
在可能会空的集合中取第一元素
val emails = …… // 可能会是空集合val mainEmail = emails.firstOrNull() ?: ""
if not null 执行代码
val value = ……value?.let { …… // 代码会执行到此处, 假如data不为null}
映射可空值(如果非空的话)
val value = ……val mapped = value?.let { transformValue(it) } ?: defaultValue// 如果该值或其转换结果为空,那么返回 defaultValue。