Definiowanie enumów
Nazwane zbiory stałych
Definiowanie enumów to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 1 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 Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.
Czym jest enum?
Klasa enum definiuje stały zbiór nazwanych stałych. Należy jej używać, gdy wartość może należeć tylko do niewielkiego, znanego zbioru możliwości.
- Każda stała jest instancją typu enum.
- Kompilator gwarantuje, że nie są możliwe żadne inne wartości.
enum class Direction {
NORTH, SOUTH, EAST, WEST
}
fun main() {
val d = Direction.NORTH
println(d)
}Dlaczego nie użyć po prostu napisów?
Napisy dopuszczają literówki i nieprawidłowe wartości. Enum sprawia, że nieprawidłowe stany są niemożliwe: kompilator odrzuca wszystko, co nie należy do zadeklarowanego zbioru.
enum class Status { ACTIVE, INACTIVE }
fun main() {
val s: Status = Status.ACTIVE
println("Current: $s")
}Deklarowanie stałych
Stałe wymienia się w nawiasach klamrowych, oddzielając je przecinkami. Zgodnie z konwencją zapisuje się je jako UPPER_SNAKE_CASE.
enum class Size {
SMALL, MEDIUM, LARGE, EXTRA_LARGE
}
fun main() {
println(Size.EXTRA_LARGE)
}Każda stała jest obiektem
Każda stała enum jest pojedynczą instancją typu enum. Zawsze odwołuje się do niej za pośrednictwem nazwy enum, na przykład Color.RED.
enum class Color { RED, GREEN, BLUE }
fun main() {
val c = Color.GREEN
println(c == Color.GREEN)
}Porównywanie wartości enum
Stałe enum można porównywać za pomocą ==. Ponieważ każda z nich jest pojedynczą instancją, równość i tożsamość referencji są zgodne.
enum class Light { RED, YELLOW, GREEN }
fun main() {
val signal = Light.RED
if (signal == Light.RED) println("Stop")
}Odczytywanie właściwości name
Każda stała udostępnia wbudowaną właściwość name: dokładny napis użyty w jej deklaracji.
enum class Planet { MERCURY, VENUS, EARTH }
fun main() {
val p = Planet.EARTH
println(p.name)
}valueOf z napisu
Wygenerowana funkcja valueOf() przekształca pasujący napis w stałą enum. Napis, który nie pasuje, powoduje zgłoszenie wyjątku.
enum class Day { MON, TUE, WED }
fun main() {
val d = Day.valueOf("TUE")
println(d)
}Używanie enum jako parametrów
Enumy świetnie sprawdzają się jako parametry funkcji: wywołujący może przekazać tylko jedną z prawidłowych stałych.
enum class Level { LOW, HIGH }
fun setVolume(level: Level) {
println("Volume set to $level")
}
fun main() {
setVolume(Level.HIGH)
}Enumy poprawiają czytelność
Kod zawierający Direction.NORTH sam wyjaśnia swoje znaczenie. W porównaniu z liczbami magicznymi, takimi jak 0 lub 1, intencja jest oczywista.
enum class Gear { PARK, DRIVE, REVERSE }
fun main() {
val current = Gear.DRIVE
println("Gear is $current")
}Realistyczny przykład
Modelowanie niewielkiego zbioru kolorów kart jest idealnym zastosowaniem enum.
enum class Suit { HEARTS, DIAMONDS, CLUBS, SPADES }
fun main() {
for (suit in Suit.values()) {
println(suit)
}
}Enumy z jedną stałą
Dozwolona jest nawet jedna stała; często służy to do modelowania wartości, która z założenia występuje tylko raz — jest to uproszczony singleton.
enum class AppMode { PRODUCTION }
fun main() {
println(AppMode.PRODUCTION)
}Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat definiowania enumów.
Podsumowanie
Nauczyli się Państwo definiować enumy:
enum classdeklaruje stały zbiór nazwanych stałych.- Każda stała jest pojedynczą instancją dostępną za pośrednictwem nazwy enum.
nameivalueOf()umożliwiają konwersję między stałymi a napisami.- Enumy zapobiegają nieprawidłowym wartościom już podczas kompilacji.
enum class Direction { NORTH, SOUTH, EAST, WEST }
fun main() {
println(Direction.valueOf("EAST").name)
}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
- 51
- Lekcje
- 203
Często zadawane pytania
Czy lekcja „Definiowanie enumów” jest bezpłatna?
Tak — pełny tekst „Definiowanie enumów” 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 Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Definiowanie enumów”?
Nazwane zbiory stałych Ćwiczysz Kotlin 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 Academy?
Nie wymagamy żadnego doświadczenia. Kotlin 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 1 z 4.
Ile czasu zajmuje lekcja „Definiowanie enumów”?
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 Academy?
Tak. Każda lekcja Kotlin 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
- Definiowanie enumów
- Właściwości i metody enumów
- Enumy z when
- Wartości i numery porządkowe enumów