六、Swift可选型与拆解包
可选类型(?) 举个例子 这里写let possibleNumber = "123"
let convertedNumber: Int? = possibleNumber.toInt()
可选类型类似于Objective-C中指针的nil值,但是nil只对类(class)有用,指对象不存在,而Swift的 nil 不是指针,它代表特定类型的值不存在。任何类型的可选类型都能赋值为 nil,而不仅限于对象类型。并且更安全。 var responseCode: Int? = 404 //要么存在,且值为404
responseCode = nil //要么不存在,可以赋值为nil表示不存在
/* 1.Swift里面nil 不能用于非可选类型 2.如果代码中的常量或者变量需要适配值不存在的情况,务必将它声明为恰当的可选类型 3.如果定义的可选类型的对象不提供默认值,该对象将自动设为nil */ //var strValue = nil //错误
var strValue: String? = "hello"
//let hashValue = strValue.hashValue //错误。对于Optional值,不能直接进行操作
hashValue = strValue?.hashValue //问号的意思是询问可选量是否响应后面这个方法
总结 ? 的使用场景 1.声明Optional变量 2.用在Optional值操作中,用来判断是否响应后面的操作 */ 解包(!) let possibleString: "An optional string"
println(possibleString!) //解包,我确定possibleString的值一定存在,不需要每次都验证他的值是否存在
let stringValue = possibleString!.hashValue //必须解包,才能获取可选量的属性或者方法
《==》
//Optional Binding,等价于上面一行
if let sValue = possibleString {
let stringValue = sValue.hashValue
}
隐式解包的可选类型 let assumedString: String! = "An implicitly unwrapped optional string"
println(assumedString) println(assumedString.hashValue)
/* */ 原文地址:http://blog.csdn.net/rolandman_/article/details/43730623 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |