swift中有個雙問號操作符(??),可以用來快速對nil進行條件判斷,今天來補充下雙問號的用法,對于不期望某個optional值為nil時func返回nil 或者 因為其值為nil而停止了后續業務的情況下,我們可以用"??"在optionalValue為nil時做賦值保險操作(“??”操作后返回值為非optional)
用法:newValue = optionalValue ?? value
若optionalValue非nil時,newValue的值為optionalValue的值,若optionalValue為nil時,newValue的值為value的值
簡單明了直接上例子:self.objectForKey(key)為nil時,object的值為0
func?validIntValueForKey(key:?String)?->?Int?{
let?object?=?self.objectForKey(key)????Int(0)
//do?something
}
例子:賦default值
versionNameLabel.text?=?NSBundle.mainBundle().objectForInfoDictionaryKey(kCFBundleVersionKey?as?String)?as??String????"版本號讀取失敗"
例子:若為nil 賦值為String數組
[plain]view plaincopy
let?businessNameList?=?user.businessList?.flatMap{?$0.businessName?}????["無場館"]