DEV Community

Beatriz da Silva
Beatriz da Silva

Posted on

Dia 6 - #100DaysOfSwift

Closures

Closures são funções passadas por parâmetro em outras funções.

O motivo mais comum pro uso de closures é pra fazer algo que você quer que o código faça, mas não exatamente naquele momento, por exemplo fazer algo após um delay, o fim de uma animação, o término de um download ou após o usuário selecionar alguma opção.

Closures nos permitem agrupar várias funcionalidades em uma única variável e em seguida armazenar em algum lugar, também é possível retornar de uma função e armazenar a closure em outro lugar.

Também é possível colocar parâmetros nas closures, a diferença entre uma closure e uma função padrão na chamada é que a função tem labels pros parâmetros e closures não.

Pra retornar um valor numa closure que não recebe parâmetros é preciso colocar parênteses vazio, a seta e o tipo que será retornado:

Image description


Trailing Closure

Quando o último parâmetro de uma função é uma closure, o swift nos deixa usar trailing closure, que nada mais é do que passar a closure diretamente depois da chamada da função; E em casos em que a closure é o único parâmetro os parênteses podem ser eliminados.

Image description

Função com closure

Mesma função mas usando trailing closure

Mesma função, mas usando trailing closure

Top comments (0)