Kotlin中的 ?: 运算符是做什么的?(Elvis Operator)
大家好!我最近开始学习Kotlin,遇到了一个奇怪的运算符 `?:`。我在别人的代码中见过它,但无法理解它的作用。
例如,有这样的代码:
```kotlin
val name: String? = null
val result = name ?: "Unknown"
```
我明白 `String?` 表示变量可以为 null。但 `?:` 是做什么的?为什么 `result` 变成了 "Unknown",尽管 `name` 是 null?在Java中,我会写 `if (name != null) name else "Unknown"`,但这里只有一个符号。
请用简单的语言解释这个运算符的工作原理,并展示一些示例。我还想知道它是否不仅可用于简单值,还能用于函数?以及是否有任何陷阱?
提前感谢!
<<>>
Kotlin中的Elvis运算符(Elvis Operator)
运算符 ?: 被称为 Elvis Operator(Elvis运算符)——因为如果侧头看,它类似于猫王的发型。它用于处理 null 值。