本文内容结构如下
- 可选操作以及可选类型
- 强制拆包
- 可选绑定
可选操作以及可选类型
var strValue:String
当我们初始化一个变量strValue
的时候,不想给它设置初始值,即赋值""
,但又不能直接赋值 nil
(在Swift
中,nil
代表没有值,与纯粹的空字符串""
完全不同)。这个时候我们可以直接在声明变量的时候在其末尾加上?
,即var strValue:String?
,这种形式的变量叫可选(optional
)变量,该类型的变量不仅可以包含字符串类型的值,也可以包含 nil
。
拆包、强制拆包
为了之后可以访问和或修改变量,需要做 拆包 处理。
拆包的方式之一:强制拆包
当使用变量的时候,在其结尾加上一个感叹号!
,这个操作的意思是,确认这个变量包含有真正的类型值而不是 nil
。
强制拆包依赖于我们百分百确定这个变量具有真正的类型值,否则程序就会发生崩溃。
可选绑定
拆包的方式之二:可选绑定
可选绑定可以在你访问变量之前,帮你检测并确保可选变量具有真正的值存在。
如下
if let userStrValue = strValue{
print("StrValue:\(userStrValue)")
}
说明:
- 在
if
语句中使用let
创建一个常量,并将可选变量的赋值给这个常量。当strValue
的值不为nil
的时候,就会执行if
语句中的代码,并且可选变量的值存储在userStrValue
。 - 可选绑定的好处在于可以避免强制拆包发生的崩溃现象,代码可以更安全。
网友评论