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

Сравнение объектов в Kotlin

Оператор === проверяет, указывают ли две переменные на один и тот же объект в памяти. Разные экземпляры класса даже с одинаковыми полями при === не равны:

class User(val name: String, val age: Int) fun main() { val a = User("john", 21) val b = User("john", 21) val c = a println(a === b) println(a === c) }

Оператор == у обычного класса без переопределения equals ведёт себя как сравнение ссылок - результат совпадает с ===:

class User(val name: String) fun main() { val a = User("john") val b = User("john") println(a == b) println(a === b) }

Сравнивать «смысл» двух объектов по полям можно вручную - проверить каждое свойство отдельно:

class User(val name: String, val age: Int) fun main() { val a = User("john", 21) val b = User("john", 21) val sameData = a.name == b.name && a.age == b.age println(sameData) }

Создайте два разных объекта User с одинаковым именем. Выведите результат === для этих переменных.

Создайте объект User и вторую переменную, которой присвоите тот же объект. Выведите результат ===.

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