Swift::3::可选型.1

可选型(Optional)

在OC,一个class类型的变量,其值既可为一个有效的对象,亦可为nil。但诸如Int,Double等类型则没有nil值。好比,32位Int,超过最大值后,OC 会用NSNotFound处理,而不是nil值。Swift 比OC 更为灵活,直接在语法层面支持全部类型佳能用nil值--可选型(Optional)swift

##如何使用xcode

使用可选型,Swift 提供了很是简洁的方式,直接在类型后加‘?’,例如定义一个有可选型的整型变量:安全

var optionalInteger: Int?

运行Xcode playground 后,能够看到以下效果: 在xcode playground 运行效果app

解包(Unwrapped)

Swift 是强类型语言,因此,上述optionalInteger 在使用时,Swift 并不但愿它是可选值,必须为Int,所以,就须要解包--简单地理解,就是转换。解包的的操做,也很简单,在变量后面加 ‘!’,好比:code

var normalInteger = optionalInteger! + 5orm

值绑定(Binding)

解包的前提是你肯定该变量必定不是nil,不然强制解包会不安全,Swfit 提供了另外一个很简洁的语法来检查解包前值是否为nil值--即值绑定,再次使用optionalInteger为例:对象

if let tempInteger = optionalInteger{
    normalInteger = tempInteger + 5     
}else {
    // nil ,do something
}

注意,tempInter 赋值后,其值不是可选的,而是Int,因此不须要解包。get

本文,参考http://www.codingexplorer.com/swift-optionals-declaration-unwrapping-and-binding/it

相关文章
相关标签/搜索