首页 > 关于swift可选型的问题 if - let。

关于swift可选型的问题 if - let。

有多个可选型,举个例子
if let titleStr = title
{

/....

}
if let nameStr = name
{

/....

}
if let ageStr = age
{

/....

}
这样三个有没有简便的写法,比如用一个if let 搞定,我记得之前看到过有方法的。像上面这样写台恶心了。。代码强迫症,求大神解答。。


不知道这三个if里面的statement逻辑加一起是OR 还是 AND, 假设是 AND, 下面是测试代码:

import Foundation

func checkIfSet( parmTitle:String!, parmName:String!)
{
    if let title=parmTitle, name=parmName {
        NSLog("yes, all values ok: %@, %@", title, name)
    } else {
        NSLog("error value setting if parameter's optional")
    }
}

var optTitle:String?
var optName:String?
checkIfSet(optTitle, parmName: optName)
optTitle = "CEO"
optName = "Honey Swift"
checkIfSet(optTitle, parmName: optName)

返回结果是:

2016-03-24 20:54:43.845 TestIfSet[456:7976] error value setting if parameter's optional
2016-03-24 20:54:43.847 TestIfSet[456:7976] yes, all values ok: CEO, Honey Swift
Program ended with exit code: 0

if let可选绑定是处理可选类型的一种办法,觉得麻烦也可以用多个问号的可选链解决多级可选


var v1: String? = "v1"
var v2: String? = "v2"
var v3: String? = "v3"

if let v11 = v1 ,v22 = v2 , v33 = v3{
    print(v11,v22,v33)
}

也可以在使用前用 guard 语句过滤一下。

【热门文章】
【热门文章】