Menu
Coddy logo textTech

Anonyme Funktionen

Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 44 von 65.

Bisher haben Sie Funktionen mit Namen wie calculateTotal oder printMessage erstellt. Aber manchmal benötigen Sie eine einfache Funktion für nur eine spezifische Aufgabe, und ihr einen Namen zu geben, fühlt sich unnötig an. Hier kommen anonyme Funktionen ins Spiel.

Eine anonyme Funktion ist eine Funktion ohne Namen. Sie definieren sie genau dort, wo Sie sie benötigen, was Ihren Code für kurze, einmalige Operationen prägnanter macht. Die Syntax ist unkompliziert – Sie schreiben einfach die Parameterliste, gefolgt vom Funktionskörper:

(parameter) {
  // Funktionskörper
}

Anonyme Funktionen sind besonders nützlich bei Listenmethoden. Anstatt beispielsweise eine separate benannte Funktion zu erstellen, um jedes Element in einer Liste auszugeben, können Sie eine anonyme Funktion direkt mit der forEach-Methode verwenden:

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.forEach((fruit) {
  print(fruit);
});

Dieser Ansatz hält Ihren Code sauber und fokussiert, besonders wenn die Funktionslogik einfach ist und an keiner anderen Stelle in Ihrem Programm wiederverwendet wird.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das eine Liste von Mitarbeiternamen mithilfe von anonymen Funktionen verarbeitet. Ihr Programm soll demonstrieren, wie anonyme Funktionen mit der forEach-Methode verwendet werden, um verschiedene Operationen auf jedem Listenelement auszuführen.

  1. Lesen Sie eine String-Eingabe ein, die Mitarbeiternamen enthält, die durch Kommas getrennt sind (z. B. "Alice,Bob,Charlie,Diana")
  2. Teilen Sie den Eingabestring mithilfe der split()-Methode in eine Liste einzelner Namen auf
  3. Verwenden Sie die forEach-Methode mit einer anonymen Funktion, um jeden Mitarbeiternamen mit einer Willkommensnachricht auszugeben
  4. Verwenden Sie die forEach-Methode mit einer weiteren anonymen Funktion, um jeden Mitarbeiternamen in Großbuchstaben auszugeben
  5. Verwenden Sie die forEach-Methode mit einer dritten anonymen Funktion, um jeden Mitarbeiternamen zusammen mit seiner Zeichenanzahl auszugeben

Wenn die Eingabe beispielsweise "Alice,Bob,Charlie" lautet, sollte Ihr Programm Folgendes ausgeben:

Processing employee list: Alice,Bob,Charlie
===========================================
Welcome Messages:
Welcome to the team, Alice!
Welcome to the team, Bob!
Welcome to the team, Charlie!
===========================================
Names in Uppercase:
ALICE
BOB
CHARLIE
===========================================
Name Lengths:
Alice has 5 characters
Bob has 3 characters
Charlie has 7 characters

Wenn die Eingabe "John,Sarah" lautet, sollte Ihr Programm Folgendes ausgeben:

Processing employee list: John,Sarah
===========================================
Welcome Messages:
Welcome to the team, John!
Welcome to the team, Sarah!
===========================================
Names in Uppercase:
JOHN
SARAH
===========================================
Name Lengths:
John has 4 characters
Sarah has 5 characters

Ihr Programm muss drei separate forEach-Methodenaufrufe verwenden, jeder mit einer eigenen anonymen Funktion. Die anonymen Funktionen sollten inline definiert werden, ohne ihnen Namen zu geben. Jede anonyme Funktion sollte einen einzelnen Parameter entgegennehmen, der den aktuellen Mitarbeiternamen darstellt, und die angegebene Operation ausführen. Verwenden Sie String-Interpolation, um die Ausgabenachrichten exakt wie oben gezeigt zu formatieren.

Spickzettel

Eine anonyme Funktion ist eine Funktion ohne Namen, die genau dort definiert wird, wo sie benötigt wird. Die Syntax verwendet eine Parameterliste, gefolgt vom Funktionskörper:

(parameter) {
  // Funktionskörper
}

Anonyme Funktionen sind besonders nützlich bei Listenmethoden wie forEach:

List<String> fruits = ['apple', 'banana', 'orange'];
fruits.forEach((fruit) {
  print(fruit);
});

Dieser Ansatz hält den Code sauber und konzentriert auf einfache, einmalige Operationen, die an anderer Stelle nicht wiederverwendet werden.

Probier es selbst

import 'dart:io';

void main() {
  // Liest den Eingabestring mit den Mitarbeiternamen
  String? input = stdin.readLineSync();
  
  // Teilt die Eingabe in eine Liste von Namen auf
  List<String> employeeNames = input!.split(',');
  
  // Gibt die erste Verarbeitungsnachricht aus
  print('Processing employee list: $input');
  print('===========================================');
  
  // TODO: Schreibe deinen Code unten
  // Verwende forEach mit anonymen Funktionen, um:
  // 1. Willkommensnachrichten auszugeben
  // 2. Namen in Großbuchstaben auszugeben  
  // 3. Namenslängen auszugeben
  
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf