Elvis 运算符
本课属于 Coddy Kotlin 学习旅程的“基础知识”单元。第 15 课,共 93 课。
安全调用运算符有助于避免程序崩溃,但有时你需要一个实际值,而不是 null。Elvis 运算符 ?: 可以在表达式为 null 时提供默认值。
语法很简单:在可空表达式后面放置 ?:,再接上备用值:
fun main() {
val name: String? = null
val displayName = name ?: "Guest"
println(displayName) // 输出:Guest
}如果左侧不为 null,就使用该值。如果左侧为 null,右侧就成为结果。这与安全调用配合使用非常合适:
fun main() {
val text: String? = null
val length = text?.length ?: 0
println(length) // 输出:0
val greeting: String? = "Hello"
val greetingLength = greeting?.length ?: 0
println(greetingLength) // 输出:5
}这个运算符之所以得名,是因为从侧面看,?: 像猫王的发型。更重要的是,它能让你用合理的默认值,将可空类型转换为非空值。
挑战
简单包裹有一个可选的跟踪标签和一个可选的目的地。起始代码提供了这两个可空值。使用 ?:,在跟踪标签缺失时选择 "Pending",在目的地缺失时选择 "Unassigned"。分别在单独的行上打印选定的标签和目的地。
亲手试试
fun main() {
val trackingLabel: String? = null
val destination: String? = "Harbor"
// 选择并打印两个用于显示的值。
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Kotlin 在线编辑器