Swift选项和`nil'。

213 阅读1分钟

本教程属于Swift系列

可选类型是Swift的一个关键特征。

当你不知道一个值是有还是没有时,你就把这个类型声明为一个可选项。

可选项包裹着另一个值,有它自己的类型。也可能不是。

我们在声明一个可选类型时,在其类型后面加上一个问号,像这样。

var value: Int? = 10

现在值不是一个Int值。它是一个包裹了一个Int值的可选项。

要想知道这个可选性是否包装了一个值,你必须解开

我们用一个感叹号来做。

var value: Int? = 10
print(value!) //10

Swift方法经常会返回一个可选项。例如,Int 类型初始化器接受一个字符串,并返回一个Int可选。

![](Screen Shot 2020-11-02 at 18.08.48.png)

这是因为它不知道这个字符串是否可以转换为一个数字。

如果这个可选项不包含一个值,它就会被评估为nil ,并且你不能解开它。

![](Screen Shot 2020-11-02 at 18.12.13.png)

nil 是一个特殊的值,不能被分配给一个变量。只能分配给一个可选参数。

![](Screen Shot 2020-11-02 at 18.14.21.png)

![](Screen Shot 2020-11-02 at 18.13.56.png)

你通常使用if 语句来解包你的代码中的值,像这样。

var value: Int? = 2

if let age = value {
    print(age)
}