NilCoalescingAssignmentOperators

NilCoalescingAssignmentOperators 是一个 Swift 微型库,提供了两个 nil 合并/赋值组合运算符。

??=

aVariable ??= newValue 仅当 aVariable 为 nil 时才执行赋值 (类似于 Ruby 的 ||= 运算符)

  1. 如果 aVariable 不为 nil,则不执行任何操作。
  2. 如果 aVariable 为 nil 但 newValue 不为 nil,则执行赋值: aVariable = newValue
  3. 如果 aVariablenewValue 都为 nil,则不执行任何操作。
aVariable ??= newValue

等价于

// roughly:
aVariable = aVariable ?? newValue

// precisely:
if aVariable == nil { aVariable = newValue }

=??

aVariable =?? newValue 仅当 newValue 不为 nil 时才执行赋值 (类似于 ??=,但优先考虑 newValue 而不是 aVariable)

  1. 如果 newValue 为 nil,则不执行任何操作。
  2. 如果 newValue 不为 nil,则执行赋值: aVariable = newValue
  3. 如果 aVariablenewValue 都不为 nil,仍然执行赋值。
aVariable =?? newValue

等价于

// roughly:
aVariable = newValue ?? aVariable

// precisely:
if newValue != nil { aVariable = newValue }
// or
if let newValue { aVariable = newValue }

构建覆盖 (Build Overlays)

主分支是 Swift 5.x,当前库版本的构建覆盖(对 Package.swift、xcodeproj 和其他构建文件的最小变更集)可在 swift-4.2swift-4swift-3 分支上找到。(注意:我没有像 Swift 4.2 或 4.0 是最新版本时那样经常检查这些构建,但是它们所做的更改是有效的,并且此后我已经将新的库版本合并到其中。)