if 语句 - Swift 2.0 条件赋值和语法



以下代码有效(其中someArray.objectForKey("someKey")类型为NSNumber):

var someInt:Int = 123
if(someDict["someKey"] != nil) {
    someInt = someDict["someKey"]!.integerValue
}

所以它可以工作并完成我需要它做的事情,但我几乎 100% 确定这不是在 Swift 中应该完成的方式。

我正在寻找上述代码的更优雅的解决方案。

被称为可选绑定

if let someValue = someArray["someKey"] as? Int { 
   someInt = someValue 
}

请阅读 Swift 语言指南中有关可选绑定的部分

如果我正确理解你的问题,你可以做

if let someInt = someArray.objectForKey("someKey")?.integerValue {
}

someInt = someArray.objectForKey("someKey")?.integerValue ?? 0

其中 0 是默认值,如果objectForKey返回 nil,则分配给someInt

最新更新