Menu
Coddy logo textTech

Funkcje anonimowe

Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 44 z 65.

Do tej pory tworzyłeś funkcje o nazwach takich jak calculateTotal czy printMessage. Czasami jednak potrzebujesz prostej funkcji do wykonania jednego konkretnego zadania, a nadawanie jej nazwy wydaje się niepotrzebne. W takich sytuacjach przydają się funkcje anonimowe.

Funkcja anonimowa to funkcja bez nazwy. Definiujesz ją dokładnie tam, gdzie jej potrzebujesz, dzięki czemu Twój kod jest bardziej zwięzły przy krótkich, jednorazowych operacjach. Składnia jest prosta — po prostu zapisujesz listę parametrów, a następnie treść funkcji:

(parameter) {
  // ciało funkcji
}

Funkcje anonimowe są szczególnie przydatne w połączeniu z metodami list. Na przykład zamiast tworzyć osobną funkcję o nazwie służącą do wyświetlania każdego elementu listy, możesz użyć funkcji anonimowej bezpośrednio z metodą forEach:

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

To podejście sprawia, że kod jest przejrzysty i skupiony na zadaniu, zwłaszcza gdy logika funkcji jest prosta i nie będzie ponownie używana w innym miejscu programu.

challenge icon

Wyzwanie

Łatwy

Utwórz program, który przetwarza listę imion i nazwisk pracowników za pomocą funkcji anonimowych. Twój program pokaże, jak używać funkcji anonimowych z metodą forEach do wykonywania różnych operacji na każdym elemencie listy.

  1. Odczytaj ciąg wejściowy zawierający imiona i nazwiska pracowników oddzielone przecinkami (np. "Alice,Bob,Charlie,Diana")
  2. Podziel ciąg wejściowy na listę poszczególnych imion i nazwisk za pomocą metody split()
  3. Użyj metody forEach z funkcją anonimową, aby wypisać imię i nazwisko każdego pracownika wraz z powitaniem
  4. Użyj metody forEach z inną funkcją anonimową, aby wypisać imię i nazwisko każdego pracownika wielkimi literami
  5. Użyj metody forEach z trzecią funkcją anonimową, aby wypisać imię i nazwisko każdego pracownika wraz z liczbą znaków

Na przykład, jeśli dane wejściowe to "Alice,Bob,Charlie", program powinien wyświetlić:

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

Jeśli dane wejściowe to "John,Sarah", program powinien wyświetlić:

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

Twój program musi używać trzech oddzielnych wywołań metody forEach, każde z własną funkcją anonimową. Funkcje anonimowe powinny być zdefiniowane bezpośrednio w miejscu użycia, bez nadawania im nazw. Każda funkcja anonimowa powinna przyjmować jeden parametr reprezentujący bieżące imię i nazwisko pracownika oraz wykonywać określoną operację. Użyj interpolacji ciągów, aby sformatować komunikaty wyjściowe dokładnie tak, jak pokazano powyżej.

Spróbuj swoich sił

import 'dart:io';

void main() {
  // Odczytaj ciąg wejściowy zawierający imiona pracowników
  String? input = stdin.readLineSync();
  
  // Podziel dane wejściowe na listę imion
  List<String> employeeNames = input!.split(',');
  
  // Wyświetl początkowy komunikat o przetwarzaniu
  print('Processing employee list: $input');
  print('===========================================');
  
  // TODO: Napisz swój kod poniżej
  // Użyj forEach z funkcjami anonimowymi, aby:
  // 1. Wyświetlić powitania
  // 2. Wyświetlić imiona wielkimi literami  
  // 3. Wyświetlić długości imion
  
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Dart online