nao entendi muito bem a vantagem do "if let" e por que usar ele, voce usando o if let voce obriga a plataforma a definir aquilo como uma constante e nao mudar o valor pra nao dar erro no app?
nao entendi muito bem a vantagem do "if let" e por que usar ele, voce usando o if let voce obriga a plataforma a definir aquilo como uma constante e nao mudar o valor pra nao dar erro no app?
Não se preocupe muito com vantagens e desvantagens nesse momento. O motivo do professor explicar esses comandos é para aprendermos eles. Se vamos usar eles no futuro dependerá muito do projeto que iremos fazer.
O if let
é interessante quando queremos verificar se um optional não é nulo e fazermos o seu unboxing, sem precisamos escrever todo esse código na mão. Veja esse exemplo:
var nomeQuePodeSerNulo : String?
nomeQuePodeSerNulo = "Felipe"
if let nomeNaoNulo = nomeQuePodeSerNulo {
print("O nome é \(nomeNaoNulo)")
}
Note que isso é equivalente a:
var nomeQuePodeSerNulo : String?
nomeQuePodeSerNulo = "Felipe"
if(nomeQuePodeSerNulo != nil) {
let nomeNaoNulo = nomeQuePodeSerNulo!
print("O nome é \(nomeNaoNulo)")
}
Veja que no segundo código tive que verificar se meu String?
não é nulo e fazer na sequência seu unboxing, para poder usar a String
com segurança. O if let
já faz isso direto. É um comando para simplificar a sintaxe.
o if let simplesmente verifica se o opcional é nulo ou não, caso não seja, ele é atribuído a uma constante onde podemos usa-la....um ponto importante em relação a boas praticas é o uso do parênteses no if...hoje não o usamos mais, mesmo que pareça mais legivel a própria apple não aconselha,....no exemplo do felipe...o if let é muito mais poderoso..e tem usos mais complexos alem do mostrado....importantíssimo se aprofundar nesse rapaz :]