三目运算符(Ternary Conditional Operator)
这在大部分语言中都比较常见
布尔值 ? "true" : "false"可选值
可选值?和!是一对。?用在某个类型后面,可以通俗的理解为,这个值不太确实是否是这个类型,如果不是就给个nil吧;!可以理解为,一定要给个类型我,要不老子分分钟挂给你看了。😎空合运算符(Nil Coalescing Operator)
??
这个我在其他语言没见过。e ?? f相当于e != nil ? e! : f, 可选类型e不是nil时,就e!,否则为f。
var e: String?
var f = "我是fuck"
e ?? f // `e != nil ? e! : f` , 可选类型`e`不是`nil`时,就`e!`,否则为`f`。(注意`??`前后要空格)