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));