首页 > 代码库 > Swift::3::可选值
Swift::3::可选值
可选值(Optional)
在OC,一个class类型的变量,其值既可为一个有效的对象,亦可为nil。但诸如Int,Double等类型则没有nil值。比如,32位Int,超过最大值后,OC 会用NSNotFound处理,而不是nil值。Swift 比OC 更为灵活,直接在语法层面支持所有类型佳能用nil值--可选值(Optional)
如何使用
使用可选值,Swift 提供了非常简洁的方式,直接在类型后加‘?’,例如定义一个有可选值的整型变量:
var optionalInteger: Int?
运行Xcode playground 后,可以看到如下效果:
解包(Unwrapped)
Swift 是强类型语言,所以,上述optionalInteger 在使用时,Swift 并不希望它是可选值,必须为Int,因此,就需要解包--简单地理解,就是转换。解包的的操作,也很简单,在变量后面加 ‘!’,比如:
var normalInteger = optionalInteger! + 5
值绑定(Binding)
解包的前提是你确定该变量一定不是nil,否则强制解包会不安全,Swfit 提供了另一个很简洁的语法来检查解包前比值是否为nil值--即值绑定,再次使用optionalInteger为例:
if let tempInteger = optionalInteger{ normalInteger = tempInteger + 5 }else { // nil ,do something }
注意,tempInter 赋值后,其值不是可选的,而是Int,所以不需要解包。
本文,参考http://www.codingexplorer.com/swift-optionals-declaration-unwrapping-and-binding/
Swift::3::可选值
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。