本打算用一篇完整把Swift的基础语法写完,但看了一下以前整理的内容,看来是不可能了。
Optional
是 Swift 的一大特色- 定义变量时,如果指定是
可选的
,表示该变量可以有一个指定类型的值,也可以是 nil
- 定义变量时,在类型后面添加一个
?
,表示该变量是可选的 - 变量可选项的默认值是
nil
- 常量可选项没有默认值,主要用于在构造函数中给常量设置初始数值
// Optional 可能有两个值 (None / Some)
// 格式(1. 自动推导):var 变量名: Optional = 值
let x: Optional = 20
// 格式(2. 指定类型):var 变量
let y: Optional<Int> = 30
// 格式(3. 简化格式):var 变量名: 类型? = 值
let z: Int? = 10
// 可选值在参与计算前,必须`解包 unwarping`
// 只有`解包(unwrap)`后才能参与计算
// 在变量后添加一个 `!`,可以强行解包
// `?` 是用于定义的
// `!` 是用于解包的
print(x! + y! + z!)
- 如果 Optional 值是
nil
,不允许参与计算 - 只有
解包(unwrap)
后才能参与计算 - 在变量后添加一个
!
,可以强行解包
??
运算符
??
运算符可以用于判断变量/常量
的数值是否是nil
,如果是则使用后面的值替代- 在使用 Swift 开发时,
??
能够简化代码的编写