ios - 关于swift可选型的问题 if - let。
天蓬老师
天蓬老师 2017-04-17 17:49:20
[iOS讨论组]

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

/....

}
if let nameStr = name
{

/....

}
if let ageStr = age
{

/....

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

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(4)
伊谢尔伦

不知道这三个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可选绑定是处理可选类型的一种办法,觉得麻烦也可以用多个问号的可选链解决多级可选

ringa_lee

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

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

if let v11 = v1 ,v22 = v2 , v33 = v3{
    print(v11,v22,v33)
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号