Swift 提供了雙問(wèn)號(hào)操作符(??),英文叫 Double Question Mark??梢杂脕?lái)快速對(duì) nil 進(jìn)行條件判斷。當(dāng)我們獲取一個(gè)可選值(optional value)時(shí),如果希望其為 nil 的情況下返回一個(gè)非 nil 值,那么就可以把這個(gè)返回值放在 ?? 后面。下面演示幾個(gè)常見(jiàn)的使用場(chǎng)景。
1,可選值不為nil則使用可選值,為nil則使用默認(rèn)值
比如我們把 userName 這個(gè)參數(shù)值顯示在 label 中,但希望 userName 如果為 nil 的話便顯示"未知用戶"。
這個(gè)我們可以使用三元條件運(yùn)算來(lái)實(shí)現(xiàn):
var userName:String?
self.label.text = userName != nil ? userName : "未知用戶"
但使用雙問(wèn)號(hào)操作符會(huì)更加簡(jiǎn)單:
var userName:String?
self.label.text = userName ?? "未知用戶"