有多个可选型,举个例子
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 语句过滤一下。