Swift 可选(Optionals)类型
2018-10-09 本文已影响0人
TheMrBigHead
Swift 的可选(Optional)类型,用于处理值缺失的情况
Swfit语言定义后缀?作为命名类型Optional的简写,换句话说,以下两种声明是相等的:
var optionalInteger: Int?
var optionalInteger: Optional<Int>
注意,在类型和 ?之间没有空格
如果一个可选类型的实例包含一个值,你可以用后缀操作符 !来访问这个值,如下所示:
optionalInteger = 42
optionalInteger! // 42
使用操作符!去获取值为nil的可选变量会有运行时错误
import Cocoa
var myString:String? = nil
if myString != nil {
print(myString)
}else{
print("字符串为 nil")
}
强制解析
当你确定可选类型确实包含值之后,你可以在可选的名字后面加一个感叹号(!)来获取值,这就是强制解析
自动解析
在声明可选变量时使用感叹号(!)替换问号(?)
import Cocoa
var myString:String!
myString = "Hello, Swift!"
if myString != nil {
print(myString)
}else{
print("myString 值为 nil")
}
可选绑定
使用可选绑定(optional binding)来判断可选类型是否包含值,如果包含就把值赋给一个临时常量或者变量
import Cocoa
var myString:String?
myString = "Hello, Swift!"
if let yourString = myString {
print("你的字符串值为 - \(yourString)") //如果myString中有值,则执行这个逻辑
}else{
print("你的字符串没有值")
}
输出结果:
你的字符串值为 - Hello, Swift!