Объявление enum class в Kotlin
Ключевое слово enum class - особый вид класса с заранее известным
списком значений. Константы перечисляют через запятую
в теле объявления; каждая константа - отдельный объект
этого типа, как экземпляр обычного класса, но создать
новую константу снаружи объявления нельзя:
enum class Day {
MONDAY,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
}
fun main() {
val today = Day.MONDAY
println(today)
}
Обращение к константе идет через имя типа и точку, как
к статическому полю. Сравнение двух значений enum безопасно
по ссылке: достаточно ==, потому что каждая
константа существует в единственном экземпляре:
enum class Level { LOW, MEDIUM, HIGH }
fun main() {
val a = Level.LOW
val b = Level.LOW
println(a == b)
}
Имена констант пишут в верхнем регистре с подчеркиванием, как принято для enum в Kotlin. Тип можно указать явно в объявлении переменной или оставить вывод типа:
enum class Mode { VIEW, EDIT }
fun main() {
val mode: Mode = Mode.EDIT
println(mode.name)
}
Объявите enum class Planet с константами
MERCURY, VENUS, EARTH.
Сохраните EARTH в переменную home
и выведите ее.
Объявите enum class Size с константами
S, M, L.
Даны переменные:
val first = Size.M
val second = Size.M
Выведите true, если значения совпадают,
иначе false.