可选(Optionals)类型
(一)可选类型的声明和可选项绑定:
///声明
let a: Int ? = 123
let b:Int ? =nil
letc:String? ="abc"
print(a)
print(b)
print(c!)
///可选项绑定
let b : Int? = 10
if let value = b {
print("value = \(value)")
}else{
print("值为空")
}
//隐式展开
let d :Int! =10
let e :Int= d
print("e=\(e)")
(二)强制解析
///如果不判空,直接强制解包,当str为nil时,就会导致解包失败和报错。
var str:String?
str = "Hello, Swift!"
if str != nil {
print(str!)
}else{
print("str 值为 nil")
}
(三)自动解析
var str:String!
str = "Hello, Swift!"
if str != nil {
print(str)
}else{
print("str 值为 nil")
}