Menu
CoddyTech

Guard Let

Parte da seção Fundamentos do Journey de Swift da Coddy. Lição 13 de 86.

Enquanto if let desembrulha um opcional e executa o código quando há um valor, guard let adota a abordagem oposta. Ele sai antecipadamente quando um valor está ausente. Isso é especialmente útil dentro de funções, quando você quer tratar primeiro o caso “ruim” e manter a lógica principal limpa.

func greet(name: String?) {
    guard let unwrappedName = name else {
        print("No name provided")
        return
    }
    print("Hello, \(unwrappedName)!")
}

greet(name: "Taylor") // Olá, Taylor!
greet(name: nil)      // Nenhum nome fornecido

A instrução guard let verifica se name tem um valor. Se não tiver, o bloco else é executado e a função é encerrada com return. Se o opcional contiver um valor, ele será desembrulhado em unwrappedName, e aqui está a principal diferença em relação a if let: a variável desembrulhada permanece disponível pelo restante da função, não apenas dentro de um bloco.

Esse padrão de “saída antecipada” mantém seu código legível ao tratar os casos de erro logo no início, para que a lógica principal não fique aninhada em várias instruções if.

challenge icon

Desafio

Fácil

Escreva uma função validateAge que recebe um parâmetro opcional age e usa guard let para desembrulhá-lo com segurança.

Se a idade for nil, retorne "Invalid age". Caso contrário, retorne "Age: [value]", em que [value] é a idade desembrulhada.

Parâmetros:

  • age (Int?): Um número inteiro opcional que representa a idade de uma pessoa

Retorno: Uma string: "Invalid age" se a entrada for nil, ou "Age: [value]" com o valor desembrulhado.

As linhas bloqueadas abaixo da sua função leem a idade da entrada (uma entrada nil resulta em nil) e exibem o que sua função retorna.

Exemplo: Se age for 25, retorne "Age: 25". Se age for nil, retorne "Invalid age".

Experimente você mesmo

func validateAge(age: Int?) -> String {
    // Escreva o código aqui
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Playground de Swift