可选项 Optional
可选项可能有两个值:none、some
定义常量、变量时,如果指定是可选的,表示该变量、常量可以有一个指定类型的值,也可以是nil
定义常量、变量时,在类型后面加上一个
?
,表示变量是可选的变量可选项的默认值是nil
常量可选项没有默认值
定义可选项的方式:
// 原始的可选项定义
let x: Optional = 10
let y: Optional<Int> = 30
// 简单定义
// ?用来定义 z,是一个可选的Int类型,可能没有值,也可能有一个整数值
let z: Int? = 40
// 可选值在参与计算之前,必须解包
// 在变量后面加个 ! 可以强行解包
// 强行解包:从可选值中强行获取对应的非空值,如果真的是 nil, 就会崩溃
// 最常见错误:Unexpectedly found nil while unwrapping an Optional value,在解包的时候发现了nil值
print(z!) //Optional(30)
print(x!) // 10
print(y!) // 40
print(x! + y!) // 50