Junior
Care este diferența dintre funcțiile anonime și cele obișnuite?
sobes.tech AI
Răspuns de la AI
Funcțiile anonime sunt funcții fără nume. Sunt adesea utilizate pentru apeluri unice sau ca callback-uri.
Diferențele principale:
- Nume: Funcțiile normale au un nume și pot fi apelate după acesta. Funcțiile anonime nu au nume.
- Definire: Funcțiile normale sunt definite folosind cuvântul cheie
func(sau echivalentul în alte limbaje) și un nume, urmate de parametri și corp. Funcțiile anonime sunt definite "din mers", adesea în locul unde sunt folosite. - Transmitere: Funcțiile anonime sunt adesea transmise ca argumente altor funcții (de exemplu, în metodele
map,where,forEach). Funcțiile normale pot fi, de asemenea, transmise, dar sunt mai frecvent folosite pentru a defini logică apelată după nume. - Domeniu: Funcțiile anonime au acces la variabilele din domeniul în care au fost definite (efectul de "captură" a închiderii). Funcțiile normale au, de obicei, propriul domeniu.
Exemplu în Dart/Flutter:
Funcție normală:
void greet(String name) {
print('Salut, $name!');
}
// Apelarea funcției normale
greet('Lume');
Funcție anonimă (lambda):
// Utilizarea unei funcții anonime în timpul iterației unei liste
List<int> numbers = [1, 2, 3, 4, 5];
numbers.forEach((number) {
print(number * 2); // Funcție anonimă care face multiplicare
});
// Funcție anonimă atribuită unei variabile
var multiplyByTwo = (int number) => number * 2;
print(multiplyByTwo(5));