Funções anônimas e fechamentos
Capture variáveis em funções embutidas.
Funções anônimas e fechamentos é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Dart Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Dart Academy inclui 4 aulas no total.
Funções sem nomes
Às vezes, você precisa de uma função uma única vez e nunca mais. Uma função anônima não tem nome e é escrita exatamente onde será usada. ✨
A estrutura básica
Uma função anônima contém apenas parâmetros e um corpo, sem nome na frente. Você pode armazená-la em uma variável.
var greet = (String n) {
print('Hi ' + n);
};Chamando a função armazenada
Depois de armazená-la, você a chama por meio da variável, assim como faria com qualquer função nomeada, usando parênteses.
greet('Ada');Passando uma função diretamente
Na maioria das vezes, você passa uma função anônima diretamente para um método. Aqui, forEach a chama para cada item.
[1, 2, 3].forEach((n) {
print(n * 2);
});Funções anônimas de seta
Para um corpo de uma única expressão, combine funções anônimas com a seta para manter tudo compacto.
var doubled = [1, 2, 3].map((n) => n * 2);O que é um fechamento?
Um fechamento é uma função que se lembra das variáveis do local onde foi criada, mesmo depois que o escopo externo termina.
Capturando uma variável
A função interna abaixo captura etapa. Ela continua usando esse valor sempre que você chama posteriormente a função retornada.
Function adder(int step) {
return (int x) => x + step;
}Cada fechamento é independente
Chame a fábrica duas vezes, e cada fechamento retornado manterá um valor capturado separado. Eles não interferem um no outro.
var add5 = adder(5);
var add10 = adder(10);Fechamentos mantêm estado
Uma variável capturada pode mudar entre as chamadas, permitindo que um fechamento se lembre do progresso, como um pequeno contador.
int count = 0;
var tick = () => ++count;Por que isso é importante
Retornos de chamada, manipuladores de eventos e métodos de listas dependem de fechamentos. Eles permitem agrupar o comportamento com os dados de que ele precisa.
Mantenha-os pequenos
Fechamentos em linha são excelentes quando curtos. Se um deles ficar complexo, dê-lhe um nome real para que outras pessoas possam lê-lo facilmente.
Verificação rápida
O que faz uma função ser um fechamento?
Recapitulação
Você conheceu funções anônimas para usos únicos e fechamentos que capturam variáveis ao redor para manter seu próprio estado. 🎯
Perguntas Frequentes
A aula “Funções anônimas e fechamentos” é grátis?
Sim — o texto completo de “Funções anônimas e fechamentos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Dart Academy, atualize para CoddyKit PRO. O curso de Dart Academy inclui 4 aulas no total.
O que vou aprender em “Funções anônimas e fechamentos”?
Capture variáveis em funções embutidas. Você pratica Dart Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Dart Academy?
Nenhuma experiência prévia é necessária. Dart Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Funções anônimas e fechamentos”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Dart Academy?
Sim. Cada aula de Dart Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Sintaxe de seta para funções de uma linha
- Funções anônimas e fechamentos
- Tipos anuláveis e o ponto de interrogação
- Operadores conscientes de nulo: ?., ?? e !