标签:http io os ar 使用 java sp on 2014
在OC,一个class类型的变量,其值既可为一个有效的对象,亦可为nil。但诸如Int,Double等类型则没有nil值。比如,32位Int,超过最大值后,OC 会用NSNotFound处理,而不是nil值。Swift 比OC 更为灵活,直接在语法层面支持所有类型佳能用nil值--可选值(Optional)
使用可选值,Swift 提供了非常简洁的方式,直接在类型后加‘?’,例如定义一个有可选值的整型变量:
var optionalInteger: Int?
运行Xcode playground 后,可以看到如下效果:
Swift 是强类型语言,所以,上述optionalInteger 在使用时,Swift 并不希望它是可选值,必须为Int,因此,就需要解包--简单地理解,就是转换。解包的的操作,也很简单,在变量后面加 ‘!’,比如:
var normalInteger = optionalInteger! + 5
解包的前提是你确定该变量一定不是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/
标签:http io os ar 使用 java sp on 2014
原文地址:http://my.oschina.net/suda/blog/337578