CocoaPods trunk is moving to be read-only. Read more on the blog, there are 14 months to go.
| TestsTested | ✗ |
| LangLanguage | SwiftSwift |
| License | Unlicense |
| ReleasedLast Release | May 2023 |
| SPMSupports SPM | ✓ |
Maintained by Slipp Douglas Thompson, Slipp Douglas Thompson.
NilCoalescingAssignmentOperators is Swift micro-library that provides two nil-coalescing/assignment-combo operators:
??=aVariable ??= newValue performs the value assignment if aVariable is nil (like Ruby's ||= operator):
aVariable is non-nil, does nothing.aVariable is nil but newValue is non-nil, does the assignment: aVariable = newValueaVariable & newValue are both nil, does nothing.aVariable ??= newValue
is equivalent to:
// roughly:
aVariable = aVariable ?? newValue
// precisely:
if aVariable == nil { aVariable = newValue }
=??aVariable =?? newValue performs the value assignment if newValue is non-nil (like ??= but prefers the newValue over the aVariable):
newValue is nil, does nothing.newValue is non-nil, does the assignment: aVariable = newValueaVariable & newValue are both non-nil, still does the assignment.aVariable =?? newValue
is equivalent to:
// roughly:
aVariable = newValue ?? aVariable
// precisely:
if newValue != nil { aVariable = newValue }
// or
if let newValue = newValue { aVariable = newValue }
The master branch is Swift 5.x, and build overlays (the minimal changeset to the Package.swift, xcodeproj, and other build files) of the current library version are available on the swift-4.2, swift-4, and swift-3 branches. (Note: I don't check that these are built as often as I used to when Swift 4.2 or 4.0 were the latest versions, but their changes haved worked and I've merged new library versions into them since then.)