Funkcje jako wartości pierwszej klasy
Przekazywanie i zwracanie funkcji jak danych
Funkcje jako wartości pierwszej klasy to bezpłatna lekcja Dart Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Dart Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Dart Academy zawiera 4 lekcji w sumie.
Funkcje są wartościami
W Dart funkcja jest wartością pierwszej klasy, podobnie jak liczba lub tekst. Można ją przechowywać, przekazywać i zwracać. 🎁
Przechowywanie funkcji
Przypisz funkcję do zmiennej, używając jej nazwy bez nawiasów. Zmienna wskazuje wtedy samą funkcję.
int triple(int x) => x * 3;
var f = triple;
f(4); // 12Typ Function
Każda funkcja ma typ opisujący jej dane wejściowe i wynik. Dla większej czytelności można określić go za pomocą słowa kluczowego Function.
int Function(int) op = triple;Przekazywanie funkcji
Funkcja może być parametrem innej funkcji. Funkcja odbierająca wywołuje ją później, dostosowując działanie bez przepisywania kodu.
int apply(int x, int Function(int) fn) {
return fn(x);
}Funkcje wyższego rzędu
Funkcja, która przyjmuje inną funkcję lub ją zwraca, jest funkcją wyższego rzędu. Takie funkcje stanowią podstawę elastycznych i wielokrotnego użytku elementów.
apply(5, triple); // 15Callbacki w praktyce
Przekazywanie funkcji do późniejszego uruchomienia nazywa się callbackiem. Metody kolekcji, takie jak forEach, stale korzystają z tego wzorca.
[1, 2, 3].forEach(print);Zwracanie funkcji
Funkcja może utworzyć i zwrócić inną funkcję. Zwrócona funkcja może nawet pamiętać wartości z miejsca, w którym została utworzona.
Function adder(int n) {
return (int x) => x + n;
}Używanie zwróconej funkcji
Wywołaj funkcję tworzącą, zapisz jej wynik, a następnie wywołaj ten wynik. Każde domknięcie zachowuje własną przechwyconą wartość.
var add5 = adder(5);
add5(10); // 15Funkcje w kolekcjach
Ponieważ funkcje są wartościami, można przechowywać wiele z nich na liście lub w mapie i wybierać jedną do uruchomienia w czasie działania programu.
var ops = [triple, add5];
ops[0](2); // 6Przekształcanie za pomocą funkcji
Metody takie jak map przyjmują funkcję i stosują ją do każdego elementu. Dzięki temu przekształcenie staje się wielokrotnego użytku wartością, którą można przekazywać.
[1, 2, 3].map(triple).toList(); // [3, 6, 9]Dlaczego ma to znaczenie
Funkcje pierwszej klasy pozwalają dostosowywać działanie przez przekazywanie logiki, a nie flag. Otwiera to drogę do przejrzystego komponowania w całym Dart i Flutter. ✨
Szybki test
Sprawdźmy, czy funkcje pierwszej klasy są już zrozumiałe.
Podsumowanie
Potrafisz już przechowywać, przekazywać i zwracać funkcje, a także tworzyć pomocnicze funkcje wyższego rzędu. To podstawa stylu funkcyjnego w Dart. 🎉
Ucz się Dart dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Funkcje jako wartości pierwszej klasy” jest bezpłatna?
Tak — pełny tekst „Funkcje jako wartości pierwszej klasy” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Dart Academy, przejdź na CoddyKit PRO. Kurs Dart Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Funkcje jako wartości pierwszej klasy”?
Przekazywanie i zwracanie funkcji jak danych Ćwiczysz Dart Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Dart Academy?
Nie wymagamy żadnego doświadczenia. Dart Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Funkcje jako wartości pierwszej klasy”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Dart Academy?
Tak. Każda lekcja Dart Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Deklarowanie funkcji i typów zwracanych
- Parametry pozycyjne a nazwane
- Wartości domyślne i required
- Funkcje jako wartości pierwszej klasy