Menu
Coddy logo textTech

Funções Anônimas

Parte da seção Lógica & Fluxo do Journey de Dart da Coddy — lição 44 de 65.

Até agora, você tem criado funções com nomes como calculateTotal ou printMessage. Mas às vezes você precisa de uma função simples para apenas uma tarefa específica, e dar a ela um nome parece desnecessário. É aqui que as funções anônimas se tornam úteis.

Uma função anônima é uma função sem nome. Você a define exatamente onde precisa, tornando seu código mais conciso para operações curtas e únicas. A sintaxe é direta - você simplesmente escreve a lista de parâmetros seguida pelo corpo da função:

(parameter) {
  // corpo da função
}

Funções anônimas são particularmente úteis com métodos de lista. Por exemplo, em vez de criar uma função nomeada separada para imprimir cada item em uma lista, você pode usar uma função anônima diretamente com o método forEach:

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.forEach((fruit) {
  print(fruit);
});

Esta abordagem mantém seu código limpo e focado, especialmente quando a lógica da função é simples e não será reutilizada em outro lugar no seu programa.

challenge icon

Desafio

Fácil

Crie um programa que processe uma lista de nomes de funcionários usando funções anônimas. Seu programa demonstrará como usar funções anônimas com o método forEach para realizar diferentes operações em cada elemento da lista.

  1. Leia uma entrada de string contendo nomes de funcionários separados por vírgulas (ex: "Alice,Bob,Charlie,Diana")
  2. Divida a string de entrada em uma lista de nomes individuais usando o método split()
  3. Use o método forEach com uma função anônima para imprimir cada nome de funcionário com uma mensagem de boas-vindas
  4. Use o método forEach com outra função anônima para imprimir cada nome de funcionário em letras maiúsculas
  5. Use o método forEach com uma terceira função anônima para imprimir cada nome de funcionário junto com sua contagem de caracteres

Por exemplo, se a entrada for "Alice,Bob,Charlie", seu programa deve produzir a seguinte saída:

Processing employee list: Alice,Bob,Charlie
===========================================
Welcome Messages:
Welcome to the team, Alice!
Welcome to the team, Bob!
Welcome to the team, Charlie!
===========================================
Names in Uppercase:
ALICE
BOB
CHARLIE
===========================================
Name Lengths:
Alice has 5 characters
Bob has 3 characters
Charlie has 7 characters

Se a entrada for "John,Sarah", seu programa deve produzir a seguinte saída:

Processing employee list: John,Sarah
===========================================
Welcome Messages:
Welcome to the team, John!
Welcome to the team, Sarah!
===========================================
Names in Uppercase:
JOHN
SARAH
===========================================
Name Lengths:
John has 4 characters
Sarah has 5 characters

Seu programa deve usar três chamadas separadas do método forEach, cada uma com sua própria função anônima. As funções anônimas devem ser definidas inline sem dar a elas nomes. Cada função anônima deve receber um único parâmetro representando o nome do funcionário atual e realizar a operação especificada. Use interpolação de string para formatar as mensagens de saída exatamente como mostrado acima.

Folha de consulta

Uma função anônima é uma função sem nome, definida exatamente onde você precisa dela. A sintaxe usa uma lista de parâmetros seguida pelo corpo da função:

(parameter) {
  // corpo da função
}

Funções anônimas são particularmente úteis com métodos de lista como forEach:

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.forEach((fruit) {
  print(fruit);
});

Essa abordagem mantém o código limpo e focado para operações simples e únicas que não serão reutilizadas em outro lugar.

Experimente você mesmo

import 'dart:io';

void main() {
  // Leia a string de entrada contendo os nomes dos funcionários
  String? input = stdin.readLineSync();
  
  // Divida a entrada em uma lista de nomes
  List<String> employeeNames = input!.split(',');
  
  // Imprima a mensagem de processamento inicial
  print('Processing employee list: $input');
  print('===========================================');
  
  // TODO: Escreva seu código abaixo
  // Use forEach com funções anônimas para:
  // 1. Imprimir mensagens de boas-vindas
  // 2. Imprimir nomes em letras maiúsculas  
  // 3. Imprimir o comprimento dos nomes
  
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo