Функция clone
Функция clone позволяет создать копию элемента перечисления (enum).
В Kotlin все enum-элементы являются объектами (синглтонами), поэтому
фактически clone возвращает тот же самый объект. Метод предоставлен
для совместимости с Java-кодом.
Синтаксис
kotlinprotected final fun clone(): Any
Пример
Создадим enum и попробуем клонировать его элемент:
kotlinenum class Direction {
NORTH, SOUTH, EAST, WEST
}
val original = Direction.NORTH
val cloned = original.clone()
println(original == cloned)
Результат выполнения кода:
kotlinBoolean true
Пример
Попробуем сравнить ссылки на объекты:
kotlinval original = Direction.NORTH
val cloned = original.clone()
println(original === cloned)
Результат выполнения кода:
kotlinBoolean true
Примечание
В Kotlin элементы enum являются синглтонами, поэтому метод clone
всегда возвращает тот же самый объект. Это поведение отличается от Java,
где clone создает новый объект для обычных классов.