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

Sentry growth stunted Image

If you are wasting time trying to track down the cause of a crash, it’s time for a better solution. Get your crash rates to zero (or close to zero as possible) with less time and effort.

Try Sentry for more visibility into crashes, better workflow tools, and customizable alerts and reporting.

Switch Tools 🔁

Top comments (0)

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

AWS GenAI LIVE!

GenAI LIVE! is a dynamic live-streamed show exploring how AWS and our partners are helping organizations unlock real value with generative AI.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️