Swift 中的可选和拆包

本文内容结构如下

  • 可选操作以及可选类型
  • 强制拆包
  • 可选绑定

可选操作以及可选类型

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
  • 可选绑定的好处在于可以避免强制拆包发生的崩溃现象,代码可以更安全。

你可能感兴趣的:(Swift 中的可选和拆包)