前言

简单记录一下KotlinElvis 运算符的使用,也就是

?:

用来在表达式为空时给一个默认值.

记录于此,方便自己查阅。

正文

val result = a ?: b

含义是:

如果 a不为 null,就用 a;否则用 b

等价于:

val result = if (a != null) a else b

常见的使用

  1. 给可空变量设置默认值

    val name: String? = null
    val displayName = name ?: "匿名用户"
    
    println(displayName) // 匿名用户
  1. 配合函数返回值使用

    fun getName(): String? {
        return null
    }
    
    val name = getName() ?: "默认名字"
  1. 在返回语句中使用

    fun getLength(text: String?): Int {
        return text?.length ?: 0
    }

    解释:

    • text?.length → 如果 text 为 null,结果是 null

    • ?: 0 → 如果前面是 null,返回 0

  1. 抛出异常

    val age: Int? = null
    val realAge = age ?: throw IllegalArgumentException("age 不能为空")
  1. 结合集合 / 映射使用

    val map = mapOf("a" to 1)
    
    val value = map["a"] ?: map["b"] ?: 0
  1. 链式使用

    val result = first() ?: second() ?: third() ?: "default"

参考文章

  1. Kotlin 资料

  2. AI

相关文章

笔友城堡 - 可定义的个人主页

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

none
暂无评论...