为什么 ?: 被称为猫王运算符(Elvis operator)

Elvis 运算符 简介

Kotlin 中的 Elvis 运算符 更像 Swift 中的空值合并运算符(??),它是一个二元运算符,执行以下操作:

  1. 如果它不为空,则返回第一个操作数
  2. 否则,它返回第二个操作数。
var operand: Int? = null
println(operand ?: "Operand is null") // prints "Operand is null"

operand = 10
println(operand ?: "Operand is null") // prints 10

为什么叫Elvis运算符

因为它侧看像猫王的表情符号

Elvis Operator

Elvis Operator

维基百科中的介绍

https://en.wikipedia.org/wiki/Elvis_operator

埃尔维斯运算符

编程语言中,埃尔维斯运算符是一种二元运算符,常写为?:、or、||,如果第一操作数求值为真则返回其值,否则返回第二操作数的值。类似于带有“最后值”语义的短路求值。埃尔维斯运算符是受三元条件运算符 ? :启发而被提出的。因为埃尔维斯运算符表达式A ?: B近似于三元条件运算符A ? A : B。

埃尔维斯运算符得名于它的通常表示法?:,相似于埃尔维斯·普雷斯利(即“猫王”)的颜文字侧脸的额发,或者其他角度看相遇于他的得意的笑脸。[1]

有一个相似的运算符是空值结合运算符,把布尔真值检查改为是否为空指针null。常写为??,如C#。[2]
# Kotlin 

作者:ITmob
来源:ITmob.cn
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×