Junior
Mis vahe on anonüümsetel funktsioonidel ja tavapärastel?
sobes.tech AI
Vastus AI-lt
Anonüümfunktsioonid on funktsioonid ilma nime. Neid kasutatakse sageli ühekordseteks kutsedeks või tagasikutsedena (callback'idena).
Peamised erinevused:
- Nimi: Tavalistel funktsioonidel on nimi ja neid saab kutsuda selle kaudu. Anonüümsetel funktsioonidel nime ei ole.
- Määratlus: Tavalised funktsioonid määratletakse võtmesõnaga
func(või ekvivalent teistes keeltes) ja nimedega, millele järgneb parameetrid ja keha. Anonüümseid funktsioone määratletakse "kohapeal", sageli nende kasutamise kohas. - Edastamine: Anonüümseid funktsioone edastatakse sageli argumentidena teistele funktsioonidele (näiteks meetodites
map,where,forEach). Tavalisi funktsioone saab samuti edastada, kuid neid kasutatakse sagedamini loogika määratlemiseks, mida kutsutakse nime järgi. - Piirkond: Anonüümfunktsioonidel on juurdepääs nende määratlemise piirkonna muutujatele ("sulgumise" mõju). Tavalistel funktsioonidel on tavaliselt oma piirkond.
Näide Dart/Flutter:
Tavaline funktsioon:
void greet(String name) {
print('Tere, $name!');
}
// Tavalise funktsiooni kutsumine
greet('Maailm');
Anonüümne funktsioon (lambda):
// Loendi iteratsiooni ajal anonüümse funktsiooni kasutamine
List<int> numbers = [1, 2, 3, 4, 5];
numbers.forEach((number) {
print(number * 2); // Anonüümne funktsioon, mis teeb korrutamise
});
// Anonüümne funktsioon määratud muutujale
var multiplyByTwo = (int number) => number * 2;
print(multiplyByTwo(5));