Swift Language Nil Coalescing Operator


Esempio

Puoi utilizzare l' operatore a coalescenza nil per scartare un valore se non è zero, altrimenti fornire un valore diverso:

func fallbackIfNil(str: String?) -> String {
    return str ?? "Fallback String"
}
print(fallbackIfNil("Hi")) // Prints "Hi"
print(fallbackIfNil(nil)) // Prints "Fallback String"

Questo operatore è in grado di cortocircuitare , nel senso che se l'operando di sinistra non è zero, l'operando di destra non verrà valutato:

func someExpensiveComputation() -> String { ... }

var foo : String? = "a string"
let str = foo ?? someExpensiveComputation()

In questo esempio, poichè foo è non-nil, someExpensiveComputation() non saranno chiamati.

Puoi anche concatenare più istruzioni coalescenti nil:

var foo : String?
var bar : String?

let baz = foo ?? bar ?? "fallback string"

In questo esempio baz verrà assegnato al valore unwrapped di foo se non è zero, altrimenti verrà assegnato il valore unwrapped della bar se non è zero, altrimenti verrà assegnato il valore di fallback.