Swift Language Usando Guard


Esempio

2.0

La guardia verifica una condizione e, se è falsa, entra nel ramo. Le filiali di controllo delle guardie devono lasciare il loro blocco di chiusura tramite return , break o continue (se applicabile); non riuscendo a farlo risulta un errore del compilatore. Questo ha il vantaggio che quando una guard è scritta non è possibile lasciare che il flusso continui accidentalmente (come sarebbe possibile con un if ).

L'uso delle protezioni può aiutare a mantenere bassi i livelli di annidamento , il che di solito migliora la leggibilità del codice.

func printNum(num: Int) {
    guard num == 10 else {
        print("num is not 10")
        return
    }
    print("num is 10")
}

Guard può anche controllare se c'è un valore in un opzionale , e quindi scartarlo nello scope esterno:

func printOptionalNum(num: Int?) {
    guard let unwrappedNum = num else {
        print("num does not exist")
        return
    }
    print(unwrappedNum)
}

Guard può combinare lo unwrapping opzionale e il controllo delle condizioni utilizzando la parola chiave where :

func printOptionalNum(num: Int?) {
guard let unwrappedNum = num, unwrappedNum == 10 else {
    print("num does not exist or is not 10")
    return
}
print(unwrappedNum)
}