3
respostas

if let por

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?

3 respostas

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 :]