Dart Academy · Lekcja

Funkcje jako wartości pierwszej klasy

Przekazywanie i zwracanie funkcji jak danych

Lekcja 4 z 413 kroki

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); // 12

Typ 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); // 15

Callbacki 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); // 15

Funkcje 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); // 6

Przekształ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. 🎉

Bezpłatny start

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

  1. Deklarowanie funkcji i typów zwracanych
  2. Parametry pozycyjne a nazwane
  3. Wartości domyślne i required
  4. Funkcje jako wartości pierwszej klasy
← Powrót do Dart Academy