Kotlin Multiplatform Academy · Lekcja

Klasy i właściwości expect/actual

Nie tylko funkcje: deklaracje, które można oznaczyć jako expect/actual

Lekcja 3 z 413 kroki

Klasy i właściwości expect/actual to bezpłatna lekcja Kotlin Multiplatform Academy na CoddyKit. To lekcja 3 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 Kotlin Multiplatform Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Multiplatform Academy zawiera 4 lekcji w sumie.

Nie tylko funkcje

expect/actual nie ogranicza się do funkcji. Można również deklarować całe classes, właściwości, a nawet obiekty różniące się na poszczególnych platformach.

Właściwość expect

Potrzebna jest wartość definiowana osobno na każdej platformie? Zadeklaruj expect val w commonMain i pozwól każdemu celowi dostarczyć własną wartość actual.

expect val platformName: String

Każdy cel ustawia własną wartość

Android i iOS dostarczają po jednym elemencie actual val. Wspólny kod traktuje właściwość jak stałą, ale jej wartość jest ustalana osobno dla każdej platformy.

actual val platformName: String = "iOS"

Klasa expect

W przypadku bardziej rozbudowanego zachowania zadeklaruj expect class. Wymienia ona elementy dostępne dla wspólnego kodu, a każda platforma uzupełnia ich ciała.

expect class Platform() {
  val name: String
}

Klasa actual dla Androida

Klasa actual class w androidMain implementuje każdy zadeklarowany element. W tym przykładzie name zwraca ciąg znaków właściwy dla Androida.

actual class Platform actual constructor() {
  actual val name = "Android"
}

Elementy muszą dokładnie pasować

Każda klasa actual musi zadeklarować wszystkie elementy obiecane przez expect, z tymi samymi nazwami i typami. Brak jednego powoduje compile error.

Konstruktory również wymagają actual

Jeśli klasa expect ma konstruktor, oznacz konstruktor platformowy jako actual constructor. Kompilator sprawdzi, czy oba elementy się zgadzają.

Używaj jak każdej klasy

We wspólnym kodzie po prostu tworzysz obiekt i korzystasz z niego. Właściwy actual zapewnia implementację obiektu, więc wspólna logika nie musi znać szczegółów platformy.

val name = Platform().name

Dodawaj elementy tylko dla platformy

Klasa actual może dodawać dodatkowe prywatne elementy poza deklaracją expect. Dla wspólnego kodu widoczne jest tylko to, co deklaruje expect.

Wybieraj najmniejsze narzędzie

Użyj właściwości expect dla wartości, funkcji expect dla działania, a klasy expect tylko wtedy, gdy potrzebujesz jednocześnie state i zachowania. ✨

Znajoma współczesna wskazówka

Nowsze wersje Kotlin kierują użytkowników raczej ku interfejsom połączonym z funkcjami expect/actual niż ku elementom expect classes, ale klasy nadal dobrze się sprawdzają.

Szybkie sprawdzenie

Zastanów się, co klasa actual musi zapewnić klasie expect.

Podsumowanie

Wiesz już, że expect/actual obejmuje również właściwości i klasy. Kształt deklaruje się w commonMain, a następnie uzupełnia każdy element w elemencie actual każdej platformy. 🎉

Bezpłatny start

Ucz się Kotlin 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 „Klasy i właściwości expect/actual” jest bezpłatna?

Tak — pełny tekst „Klasy i właściwości expect/actual” 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 Kotlin Multiplatform Academy, przejdź na CoddyKit PRO. Kurs Kotlin Multiplatform Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Klasy i właściwości expect/actual”?

Nie tylko funkcje: deklaracje, które można oznaczyć jako expect/actual Ćwiczysz Kotlin Multiplatform 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ąć Kotlin Multiplatform Academy?

Nie wymagamy żadnego doświadczenia. Kotlin Multiplatform 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 3 z 4.

Ile czasu zajmuje lekcja „Klasy i właściwości expect/actual”?

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 Kotlin Multiplatform Academy?

Tak. Każda lekcja Kotlin Multiplatform 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 istnieje expect/actual
  2. Pobieranie nazwy platformy dla każdego celu
  3. Klasy i właściwości expect/actual
  4. Typowe błędy i błędy kompilatora
← Powrót do Kotlin Multiplatform Academy