0Pricing
Dart Academy · Aula

Funções como valores de primeira classe

Passe e retorne funções como dados.

Funções como valores de primeira classe é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 4 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 são valores

Em Dart, uma função é um valor de primeira classe, assim como um número ou uma cadeia de caracteres. Você pode armazená-la, passá-la e retorná-la. 🎁

Armazenando uma função

Atribua uma função a uma variável usando o nome dela sem parênteses. A variável agora aponta para a própria função.

int triple(int x) => x * 3;
var f = triple;
f(4); // 12

O tipo de função

Toda função tem um tipo que descreve suas entradas e sua saída. Você pode nomeá-lo usando a palavra-chave Function para obter mais clareza.

int Function(int) op = triple;

Passando uma função

Uma função pode ser o parâmetro de outra função. A função receptora a chama mais tarde, personalizando o comportamento sem reescrever o código.

int apply(int x, int Function(int) fn) {
  return fn(x);
}

Funções de ordem superior

Uma função que recebe ou retorna outra função é uma função de ordem superior. Elas permitem criar componentes flexíveis e reutilizáveis.

apply(5, triple); // 15

Retornos de chamada em ação

Passar uma função para que ela seja executada mais tarde é chamado de retorno de chamada. Métodos de coleções, como forEach, dependem constantemente desse padrão.

[1, 2, 3].forEach(print);

Retornando uma função

Uma função pode criar e devolver outra função. A função retornada pode até se lembrar de valores do local onde foi criada.

Function adder(int n) {
  return (int x) => x + n;
}

Usando a função retornada

Chame a função criadora, armazene o resultado e depois invoque esse resultado. Cada fechamento mantém vivo seu próprio valor capturado.

var add5 = adder(5);
add5(10); // 15

Funções em coleções

Como funções são valores, você pode armazenar várias em uma lista ou mapa e escolher uma para executar durante a execução do programa.

var ops = [triple, add5];
ops[0](2); // 6

Mapeando com funções

Métodos como map aceitam uma função e a aplicam a cada item. Isso transforma uma transformação em um valor reutilizável que você pode passar adiante.

[1, 2, 3].map(triple).toList(); // [3, 6, 9]

Por que isso é importante

Funções de primeira classe permitem personalizar o comportamento passando lógica, não sinalizadores. Isso possibilita uma composição limpa em todo o Dart e o Flutter. ✨

Verificação rápida

Vamos verificar se o conceito de funções de primeira classe ficou claro.

Recapitulação

Agora você pode armazenar, passar e retornar funções, além de criar auxiliares de ordem superior. Essa é a base do estilo funcional em Dart. 🎉

Perguntas Frequentes

A aula “Funções como valores de primeira classe” é grátis?

Sim — o texto completo de “Funções como valores de primeira classe” é 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 como valores de primeira classe”?

Passe e retorne funções como dados. 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 4 de 4.

Quanto tempo leva a aula “Funções como valores de primeira classe”?

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

  1. Declarar funções e tipos de retorno
  2. Parâmetros posicionais versus nomeados
  3. Valores padrão e required
  4. Funções como valores de primeira classe
← Voltar para Dart Academy