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数组
网友评论