В Kotlin перечисление — это специальный тип, который позволяет вам определять набор именованных значений. Каждое значение в перечислении называется константой перечисления. Константы перечисления обычно используются для представления фиксированного числа возможностей, таких как дни недели или цвета.
Вот несколько распространенных методов, которые можно использовать с перечислениями Kotlin:
values(): этот метод возвращает массив всех констант перечисления, определенных в классе перечисления. Вы можете использовать его для перебора всех возможных значений.
enum class DayOfWeek {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
fun main() {
val days = DayOfWeek.values()
for (day in days) {
println(day)
}
}
Выход:
MONDAY
TUESDAY
WEDNESDAY
THURSDAY
FRIDAY
SATURDAY
SUNDAY
valueOf(String): этот метод возвращает константу перечисления с указанным именем. Он генерирует исключение, если такой константы не существует.
enum class Color {
RED, GREEN, BLUE
}
fun main() {
val color = Color.valueOf("RED")
println(color)
}
Выход:
RED
name: это свойство возвращает имя перечислимой константы в виде строки.
enum class Direction {
NORTH, SOUTH, EAST, WEST
}
fun main() {
val direction = Direction.NORTH
println(direction.name)
}
Выход:
NORTH
ordinal: это свойство возвращает порядковый номер константы перечисления, который представляет собой ее позицию в объявлении перечисления, начиная с нуля.
enum class Size {
SMALL, MEDIUM, LARGE
}
fun main() {
val size = Size.MEDIUM
println(size.ordinal)
}
Выход:
1
- Пользовательские методы: вы можете определить свои собственные методы в перечислении для выполнения определенных операций на основе константы перечисления.
enum class Operation {
ADD {
override fun perform(a: Int, b: Int): Int {
return a + b
}
},
SUBTRACT {
override fun perform(a: Int, b: Int): Int {
return a - b
}
},
MULTIPLY {
override fun perform(a: Int, b: Int): Int {
return a * b
}
};
abstract fun perform(a: Int, b: Int): Int
}
fun main() {
val operation = Operation.ADD
val result = operation.perform(2, 3)
println(result)
}
Выход:
5