swift (二) | 可选型

  • Swift
  • 2019-04-21 22:23:53
  • 浏览 769
简介可选型Swift 的可选(Optional)类型,用于处理值缺失的情况。可选表示&quot;那儿有一个值,并且它等于 x &quot;或者&quot;那儿没有值&quot;。简单理解:就是一个变量,它的值可能是具体某个值或者为nil&nbsp;可选型的声明var&nbsp;optionalInteger:Int? var&nbsp;optionalString:Optional&lt;String&gt;以上两种方式都是可以声明可选型的声明一个可选变量或者可选属性的时候没有提供初始值,它的值会<!--autointro-->

可选型

Swift 的可选(Optional)类型,用于处理值缺失的情况。可选表示"那儿有一个值,并且它等于 x "或者"那儿没有值"。

简单理解:就是一个变量,它的值可能是具体某个值或者为nil 

可选型的声明

var optionalInteger:Int?
var optionalString:Optional<String>

以上两种方式都是可以声明可选型的

声明一个可选变量或者可选属性的时候没有提供初始值,它的值会默认为 nil。


强制解析

当你确定可选类型确实包含值之后,你可以在可选的名字后面加一个感叹号(!)来获取值。这个感叹号表示"我知道这个可选有值,请使用它。"这被称为可选值的强制解析(forced unwrapping)。

// 声明变量没有赋值,此时变量为nil
var a:String?
// 强制解析可选型会报错
print(a!)

使用!来获取一个不存在的可选值会导致运行时错误。使用!来强制解析值之前,一定要确定可选包含一个非nil的值。


自动解析

你可以在声明可选变量时使用感叹号(!)替换问号(?)。这样可选变量在使用时就不需要再加一个感叹号(!)来获取值,它会自动解析。

var a:String! = "abc"
print(a)

输出

Optional("abc")

实测并没有自动解析,不懂原因。。。


可选绑定

使用可选绑定(optional binding)来判断可选类型是否包含值,如果包含就把值赋给一个临时常量或者变量。可选绑定可以用在if和while语句中来对可选类型的值进行判断并把值赋给一个常量或者变量。

var a:String! = "abc"
if let b = a {
    print(b)
}

输出

abc

文章评论