NilCoalescingAssignmentOperators 是一个 Swift 微型库,提供了两个 nil 合并/赋值组合运算符。
aVariable ??= newValue
仅当 aVariable
为 nil 时才执行赋值 (类似于 Ruby 的 ||=
运算符)。
aVariable
不为 nil,则不执行任何操作。aVariable
为 nil 但 newValue
不为 nil,则执行赋值: aVariable = newValue
。aVariable
和 newValue
都为 nil,则不执行任何操作。aVariable ??= newValue
等价于
// roughly:
aVariable = aVariable ?? newValue
// precisely:
if aVariable == nil { aVariable = newValue }
aVariable =?? newValue
仅当 newValue
不为 nil 时才执行赋值 (类似于 ??=
,但优先考虑 newValue
而不是 aVariable
)。
newValue
为 nil,则不执行任何操作。newValue
不为 nil,则执行赋值: aVariable = newValue
。aVariable
和 newValue
都不为 nil,仍然执行赋值。aVariable =?? newValue
等价于
// roughly:
aVariable = newValue ?? aVariable
// precisely:
if newValue != nil { aVariable = newValue }
// or
if let newValue { aVariable = newValue }
主分支是 Swift 5.x,当前库版本的构建覆盖(对 Package.swift、xcodeproj 和其他构建文件的最小变更集)可在 swift-4.2、swift-4 和 swift-3 分支上找到。(注意:我没有像 Swift 4.2 或 4.0 是最新版本时那样经常检查这些构建,但是它们所做的更改是有效的,并且此后我已经将新的库版本合并到其中。)