Функция compareTo

Функция compareTo сравнивает два значения enum по их порядковому номеру (позиции в объявлении enum). Возвращает отрицательное число, если текущий объект идет раньше сравниваемого, положительное - если позже, и 0 - если значения равны.

Синтаксис

kotlinfun compareTo(other: Enum): Int

Пример

Сравнение значений простого enum:

kotlinenum class Direction { NORTH, EAST, SOUTH, WEST }

val dir1 = Direction.NORTH
val dir2 = Direction.SOUTH
val res = dir1.compareTo(dir2)

println(res)

Результат выполнения кода:

kotlinInt -2

Пример

Сравнение одинаковых значений enum:

kotlinenum class Status { OPEN, IN_PROGRESS, CLOSED }

val status1 = Status.IN_PROGRESS
val status2 = Status.IN_PROGRESS
val res = status1.compareTo(status2)

println(res)

Результат выполнения кода:

kotlinInt 0

Пример

Использование compareTo в условии:

kotlinenum 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")
}

Результат выполнения кода:

kotlinString "p1 has lower priority than p2"

Смотрите также

  • свойство ordinal,
    которое возвращает порядковый номер значения enum
  • метод values,
    который возвращает массив всех значений enum
  • метод valueOf,
    который возвращает значение enum по имени