Sobes.tech
Junior — Middle

Pode explicar o que se entende por Auto Closure no contexto da programação?

sobes.tech IA

Resposta da IA

Auto Closure é um mecanismo em Swift que permite envolver automaticamente uma expressão numa closure (fecho). Isto significa que, em vez de passar uma closure explicitamente, pode-se passar uma expressão que só será avaliada quando a closure for chamada.

Vantagens:

  • Cálculo diferido: a expressão não é avaliada imediatamente, mas apenas quando necessário.
  • Sintaxe conveniente: o código torna-se mais limpo e simples.

Exemplo:

func logIfTrue(_ predicate: @autoclosure () -> Bool) {
    if predicate() {
        print("A condição é verdadeira")
    }
}

logIfTrue(2 > 1) // A expressão 2 > 1 é automaticamente envolvida numa closure

Aqui, 2 > 1 não é avaliado imediatamente na chamada, mas apenas dentro da função ao chamar predicate().