0Pricing
Dart Academy · Lekcja

Klasy i metody generyczne

Parametryzowanie własnych typów

Klasy i metody generyczne to bezpłatna lekcja Dart Academy na CoddyKit. To lekcja 2 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.

Własne generyki

Wbudowane typy, takie jak List, są generyczne, ale można też tworzyć własne generyki. Parametr typu pozwala klasie dostosować się do dowolnego typu wybranego przez wywołującego. 🧩

Nazywanie parametru typu

Parametr typu dodaje się w nawiasach ostrych po nazwie klasy. Litera T jest często używanym symbolem zastępczym reprezentującym rzeczywisty typ.

class Box<T> {
  T value;
  Box(this.value);
}

Używanie T wewnątrz klasy

Wewnątrz klasy T zachowuje się jak każda nazwa typu. Można używać go dla pól, parametrów i wartości zwracanych w całym ciele klasy.

class Box<T> {
  T value;
  Box(this.value);
  T get() => value;
}

Uzupełnianie typu

Podczas tworzenia obiektu wybiera się rzeczywisty typ. W tym przypadku T staje się int, więc ten pojemnik będzie przechowywać wyłącznie liczby całkowite.

var b = Box<int>(42);
int n = b.get();

Pozwól Dartowi wywnioskować typ

Często można pominąć jawne określenie typu, ponieważ Dart odczytuje go z argumentu. Wnioskowanie rozpoznaje String i samodzielnie ustawia T.

var b = Box('hi');

Wiele parametrów typu

Klasa może przyjmować więcej niż jeden parametr typu, oddzielony przecinkami. Para przechowująca dwa różne typy to klasyczny przykład.

class Pair<A, B> {
  A first;
  B second;
  Pair(this.first, this.second);
}

Metody generyczne

Pojedynczą metodę również można uczynić generyczną, nawet w klasie niegenerycznej. Parametr typu należy umieścić bezpośrednio przed listą parametrów.

T firstOf<T>(List<T> items) => items[0];

Metody też wnioskują typ

Metoda generyczna zwykle wnioskuje swój typ na podstawie przekazanych argumentów. Należy wywołać ją normalnie, a Dart ustali resztę.

var n = firstOf([1, 2, 3]);
var s = firstOf(['a', 'b']);

Powrót bezpieczeństwa typów

Ponieważ metoda śledzi T, wynik zachowuje właściwy typ. firstOf dla listy String zwraca String, bez potrzeby rzutowania.

String x = firstOf(['a', 'b']);

Wielokrotne użycie bez powtórzeń

Jedna definicja generyczna zastępuje wiele wersji utworzonych metodą kopiuj-wklej. Logikę zapisuje się raz, a następnie działa ona tak samo dla int, String i dowolnego własnego typu.

Wybieraj jasne nazwy

Pojedyncze litery, takie jak T, E czy K, są konwencjonalne, ale opisowa nazwa może ułatwić zrozumienie kodu. W złożonym kodzie przejrzystość jest ważniejsza niż zwięzłość.

Szybkie sprawdzenie

Gdzie umieszcza się parametr typu w klasie?

Podsumowanie

Nauczył(a) się Pan/Pani dodawać parametr typu, taki jak T, do własnych klas i metod. Dart uzupełnia go, często za pomocą wnioskowania, dzięki czemu kod pozostaje wielokrotnego użytku i bezpieczny. ✅

Często zadawane pytania

Czy lekcja „Klasy i metody generyczne” jest bezpłatna?

Tak — pełny tekst „Klasy i metody generyczne” 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 „Klasy i metody generyczne”?

Parametryzowanie własnych typów Ć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 2 z 4.

Ile czasu zajmuje lekcja „Klasy i metody generyczne”?

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. Dlaczego generyki przewyższają dynamic
  2. Klasy i metody generyczne
  3. Ograniczone parametry typów z extends
  4. Kolekcje generyczne w praktyce
← Powrót do Dart Academy