"??" -Nil Coalescing Operator。
包含"?"作为运算符,我们肯定想到了三目运算符" ? : ",两者也确实可以实现相同的功能,不过"??"更加简洁。
以下通过苹果官方的文档来解释:
简单翻译就是:??运算符(a ?? b)就是把可选类型a拆包后,判断如果a包含一个非空值,就返回a拆包后的值,如果a为空值,就返回b。其中a必须是可选类型,b必须是和a所包含的数据类型相同。
(a ?? b)跟 a != nil ? a! : b效果一样。
相对来说,??运算符提供了一个更加简便的方式来封装这种条件确认和拆包成简洁易读的形式。