The coalesce
package implements a null coalescing operator ??
for Nim.
The most obvious case is choosing the first non-nil value.
let a: string = nil
let x = a ?? "b"
assert x == "b"
The operator also supports Option[T]
.
let a: Option[string] = none(string)
let x = a ?? "b"
assert x == "b"
Longer chains work too, and the expression short-circuits if possible.
let result = tryComputeFast(input) ?? tryComputeSlow(input) ?? myDefault
- support for
not nil