В Kotlin есть два отличающихся друг от друга оператора равенства: структурное равенство (==) и ссылочное равенство (===). Они служат разным целям и не должны путаться.
==)Оператор == проверяет, являются ли два объекта логически равными — то есть имеют одинаковое содержимое или значение. Это эквивалентно вызову .equals() в Java.
val a = "hello"
val b = "hello"
println(a == b) // true — одинаковое содержимое
true, если объекты содержат одни и те же данныеequals()===)Оператор === проверяет, указывают ли две переменные на один и тот же объект в памяти. Это эквивалентно оператору == в Java.
val a = StringBuilder("hello")
val b = a
val c = StringBuilder("hello")
println(a === b) // true — одна и та же ссылка
println(a === c) // false — разные объекты
true только если обе ссылки указывают на один и тот же экземпляр== для сравнения значений или содержимого=== для сравнения ссылок на объектыПримечание: для примитивных типов, таких как
Int, Kotlin компилирует===в обычное сравнение значений, поскольку у примитивов нет ссылочной идентичности.
Оператор == в Kotlin эквивалентен вызову метода equals() и проверяет, содержат ли два объекта одинаковые данные.
Новый — ещё не проверен сообществом
Вы