Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktOpEsEP 75 of 123 menu
◀ ▶

Свойства констант enum в Kotlin

У enum class может быть первичный конструктор с параметрами - как у обычного класса. Значения параметров задают отдельно для каждой константы в круглых скобках после её имени:

enum class Color(val rgb: Int) { RED(0xFF0000), GREEN(0x00FF00), BLUE(0x0000FF) } fun main() { println(Color.RED.rgb) }

Свойства, объявленные в конструкторе enum, доступны у любой константы как у обычного объекта. Порядок констант в теле enum совпадает с порядком в entries и с полем ordinal:

enum class Size(val maxItems: Int) { SMALL(10), MEDIUM(50), LARGE(200) } fun main() { println(Size.MEDIUM.maxItems) println(Size.LARGE.ordinal) }

Параметры конструктора можно комбинировать с обычными полями в теле enum, если одной константе нужна дополнительная логика инициализации:

enum class Currency(val code: String, val sign: String) { USD("USD", "$"), EUR("EUR", "€"), RUB("RUB", "₽") } fun main() { val c = Currency.EUR println("${c.sign} ${c.code}") }

Объявите enum class HttpStatus с полем code: Int: OK - 200, NOT_FOUND - 404, SERVER_ERROR - 500. Выведите код для HttpStatus.NOT_FOUND.

Объявите enum class Discount с полем percent: Int: NONE - 0, SALE - 10, MEGA - 30. Дана переменная:

val d = Discount.SALE

Выведите значение percent.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить