Optional 可选项
- Optional是 Swift 的一大特色,也是 Swift 初学者最容易困惑的问题
- 定义变量时,如果指定是可选的,表示该变量可以有一个指定类型的值,也可以是 nil
- 定义变量时,在类型后面添加一个 ?,表示该变量是可选的
- 变量可选项的默认值是 nil
-常量可选项没有默认值,主要用于在构造函数中给常量设置初始数值
- 如果 Optional 值是 nil,不允许参与计算
- 只有解包(unwrap)后才能参与计算
- 在变量后添加一个 !,可以强行解包
注意:必须要确保解包后的值不是 nil,否则会报错
常见错误
unexpectedly found nil while unwrapping an Optional value
翻译 :在对可选项[解包]时发现 nil
?? 运算符
- ??运算符可以用于判断 变量/常量的数值是否是 nil,如果是则使用后面的值替代
- 在使用 Swift 开发时,?? 能够简化代码的编写
// 常量可选项必须要设置初始值
var x: Int?
//= 20// x = 30// 变量可选项默认值是 nil
var y: Int? //= 10y = 20print((x ?? 0) + (y ?? 0))
########注意:?? 的优先级低,在使用时,应该注意使用 ()
var str: String? = "老王"// 注意 ??
的优先级低,在使用时,应该注意使用 ()
print((str ?? "无名") + " 你好")
print(str ?? "无名" + " 你好")
网友评论