Optional:合并空值运算符
2021-06-09 本文已影响0人
一个栗
合并空值运算符
- 合并空值运算符(a ?? b)如果可选项 a 有值则展开,如果没有值,是nil,则返回默认值 b
- 表达式 a 必须是一个可选类型。表达式 b 必须和 a 的储存类型相同。
- 实际上是三元运算符作用到 Optional 上的缩写 (a != nil ? a! : b)
- 如果 a 的值是非空的,b 的值将不会被考虑,也就是合并空值运算符是短路的。
let a : Int? = 3
let b = 4
print(a ?? b)
打印结果:
3
let a : Int? = nil
let b = 4
print(a ?? b)
打印结果:
4
a 和 b 类型不同,实际上不会报错【苹果文档上说的不允许】
let a : Int? = nil
let b : String = "bb"
print(a ?? b)
打印结果:
bb
日常便利
let a : Int? = nil
let b = 2
func addTwoNum(num1 : Int?, num2 : Int?) -> Int {
return (num1 ?? 0) + (num2 ?? 0)
}
print(addTwoNum(num1: a, num2: b))
打印结果为:
2