Elvis 运算符
简介
Kotlin
中的 Elvis 运算符
更像 Swift
中的空值合并运算符(??
),它是一个二元运算符,执行以下操作:
- 如果它不为空,则返回第一个操作数
- 否则,它返回第二个操作数。
var operand: Int? = null
println(operand ?: "Operand is null") // prints "Operand is null"
operand = 10
println(operand ?: "Operand is null") // prints 10
为什么叫Elvis运算符
因为它侧看像猫王的表情符号
维基百科中的介绍
https://en.wikipedia.org/wiki/Elvis_operator
埃尔维斯运算符
编程语言中,埃尔维斯运算符是一种二元运算符,常写为?:、or、||,如果第一操作数求值为真则返回其值,否则返回第二操作数的值。类似于带有“最后值”语义的短路求值。埃尔维斯运算符是受三元条件运算符 ? :启发而被提出的。因为埃尔维斯运算符表达式A ?: B近似于三元条件运算符A ? A : B。
埃尔维斯运算符得名于它的通常表示法?:,相似于埃尔维斯·普雷斯利(即“猫王”)的颜文字侧脸的额发,或者其他角度看相遇于他的得意的笑脸。[1]
有一个相似的运算符是空值结合运算符,把布尔真值检查改为是否为空指针null。常写为??,如C#。[2]