swift中有個雙問號操作符(??)铆帽,可以用來快速對nil進(jìn)行條件判斷,今天來補(bǔ)充下雙問號的用法剔宪,對于不期望某個optional值為nil時func返回nil 或者 因為其值為nil而停止了后續(xù)業(yè)務(wù)的情況下,我們可以用"??"在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數(shù)組