Junior
Was ist der Unterschied zwischen anonymen Funktionen und normalen Funktionen?
sobes.tech KI
Antwort von AI
Anonyme Funktionen sind Funktionen ohne Namen. Sie werden häufig für einmalige Aufrufe oder als Callback verwendet.
Hauptunterschiede:
- Name: Normale Funktionen haben einen Namen und können darüber aufgerufen werden. Anonyme Funktionen haben keinen Namen.
- Definition: Normale Funktionen werden mit dem Schlüsselwort
func(oder Äquivalent in anderen Sprachen) und einem Namen definiert, gefolgt von Parametern und Körper. Anonyme Funktionen werden "im laufenden Betrieb" definiert, oft an der Stelle ihrer Verwendung. - Übergabe: Anonyme Funktionen werden häufig als Argumente an andere Funktionen übergeben (z.B. in
map,where,forEach). Normale Funktionen können auch übergeben werden, werden aber eher zur Definition von Logik verwendet, die nach Namen aufgerufen wird. - Gültigkeitsbereich: Anonyme Funktionen haben Zugriff auf Variablen aus dem Gültigkeitsbereich, in dem sie definiert wurden (Effekt des "Captures" von Closures). Normale Funktionen haben in der Regel ihren eigenen Gültigkeitsbereich.
Beispiel in Dart/Flutter:
Normale Funktion:
void greet(String name) {
print('Hallo, $name!');
}
// Aufruf der normalen Funktion
greet('Welt');
Anonyme Funktion (Lambda):
// Verwendung einer anonymen Funktion bei der Iteration einer Liste
List<int> numbers = [1, 2, 3, 4, 5];
numbers.forEach((number) {
print(number * 2); // Anonyme Funktion, die Multiplikation durchführt
});
// Anonyme Funktion, die einer Variablen zugewiesen ist
var multiplyByTwo = (int number) => number * 2;
print(multiplyByTwo(5));