If not null 缩写

  1. val files = File("Test").listFiles()
  2. println(files?.size)

If not null and else 缩写

  1. val files = File("Test").listFiles()
  2. println(files?.size ?: "empty")

if null 执行一个语句

  1. val values = ……
  2. val email = values["email"] ?: throw IllegalStateException("Email is missing!")

在可能会空的集合中取第一元素

  1. val emails = …… // 可能会是空集合
  2. val mainEmail = emails.firstOrNull() ?: ""


if not null 执行代码

  1. val value = ……
  2. value?.let {
  3. …… // 代码会执行到此处, 假如data不为null
  4. }


映射可空值(如果非空的话)


  1. val value = ……
  2. val mapped = value?.let { transformValue(it) } ?: defaultValue
  3. // 如果该值或其转换结果为空,那么返回 defaultValue。