Swift学习15:为了Optional,合并空置运算符

张建 lol

合并空值运算符

  • 合并空值运算符 a ?? b 如果可选项 a 有值则展开,如果没有值是 nil,则返回默认值 b

  • 表达式 a 必须是一个可选类型,表达式 b 必须与 a 的存储类型相同

  • 实际上是 三元运算符 作用到 Optional 上的缩写 a != nil ? a : b

  • 如果 a 的值是非空的,b 的值将不会被考虑,也就是合并空值运算符是短路的

  • 可选值为nil时,不能强制解包

可以用 if 判断实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
let a:Int? = nil
let b = 2
func sum(x:Int?,y:Int?) -> Int{
// return x! + y!
if x != nil {
if y != nil {
return x! + y!
}else {
return x!
}
}else {
if y != nil {
return y!
}else {
return 0
}
}
}

也可以用 ?? 来实现

1
return (a ?? 0) + b
  • Post title:Swift学习15:为了Optional,合并空置运算符
  • Post author:张建
  • Create time:2023-02-23 01:31:50
  • Post link:https://redefine.ohevan.com/2023/02/23/Swift课程/Swift学习15:为了Optional,合并空置运算符/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
On this page
Swift学习15:为了Optional,合并空置运算符