Estou reescrevendo completamente minha resposta ( novamente ). Desta vez é porque me tornei fã da guarddeclaração e retorno antecipado . Isso cria um código muito mais limpo.
Sequência não opcional
Verifique o comprimento zero.
let myString: String = ""
if myString.isEmpty {
print("String is empty.")
return // or break, continue, throw
}
// myString is not empty (if this point is reached)
print(myString)
Se a ifinstrução for aprovada, você poderá usar a string com segurança, sabendo que ela não está vazia. Se estiver vazio, a função retornará mais cedo e nada depois que importa.
Sequência opcional
Verifique o comprimento nulo ou zero.
let myOptionalString: String? = nil
guard let myString = myOptionalString, !myString.isEmpty else {
print("String is nil or empty.")
return // or break, continue, throw
}
// myString is neither nil nor empty (if this point is reached)
print(myString)
Isso desembrulha o opcional e verifica se ele não está vazio ao mesmo tempo. Depois de passar a guardinstrução, você pode usar com segurança sua seqüência de caracteres não vazia não empacotada.