Sobes.tech
Junior

Qual é a diferença entre funções anónimas e funções normais?

sobes.tech IA

Resposta da IA

As funções anónimas são funções sem nome. São frequentemente usadas para chamadas únicas ou como callbacks.

Principais diferenças:

  • Nome: As funções normais têm um nome e podem ser chamadas por ele. As funções anónimas não têm nome.
  • Definição: As funções normais são definidas usando a palavra-chave func (ou equivalente em outras linguagens) e um nome, seguidos de parâmetros e corpo. As funções anónimas são definidas "em tempo de execução", muitas vezes no local onde são usadas.
  • Passagem: As funções anónimas são frequentemente passadas como argumentos para outras funções (por exemplo, em métodos map, where, forEach). As funções normais também podem ser passadas, mas são mais usadas para definir lógica que é chamada pelo nome.
  • Escopo: As funções anónimas têm acesso às variáveis do escopo onde foram definidas (efeito de "captura" de encerramento). As funções normais geralmente têm seu próprio escopo.

Exemplo em Dart/Flutter:

Função normal:

void greet(String name) {
  print('Olá, $name!');
}

// Chamada de função normal
greet('Mundo');

Função anónima (lambda):

// Uso de função anónima na iteração de uma lista
List<int> numbers = [1, 2, 3, 4, 5];
numbers.forEach((number) {
  print(number * 2); // Função anónima que realiza multiplicação
});

// Função anónima atribuída a uma variável
var multiplyByTwo = (int number) => number * 2;
print(multiplyByTwo(5));