Функция compareTo
Функция compareTo сравнивает два значения enum
по их порядковому номеру (позиции в объявлении enum).
Возвращает отрицательное число, если текущий объект
идет раньше сравниваемого, положительное - если позже,
и 0 - если значения равны.
Синтаксис
fun compareTo(other: Enum): Int
Пример
Сравнение значений простого enum:
enum class Direction { NORTH, EAST, SOUTH, WEST }
val dir1 = Direction.NORTH
val dir2 = Direction.SOUTH
val res = dir1.compareTo(dir2)
println(res)
Результат выполнения кода:
Int -2
Пример
Сравнение одинаковых значений enum:
enum class Status { OPEN, IN_PROGRESS, CLOSED }
val status1 = Status.IN_PROGRESS
val status2 = Status.IN_PROGRESS
val res = status1.compareTo(status2)
println(res)
Результат выполнения кода:
Int 0
Пример
Использование compareTo в условии:
enum class Priority { LOW, MEDIUM, HIGH }
val p1 = Priority.MEDIUM
val p2 = Priority.HIGH
if (p1.compareTo(p2) < 0) {
println("p1 has lower priority than p2")
} else {
println("p1 has equal or higher priority than p2")
}
Результат выполнения кода:
String "p1 has lower priority than p2"