Выбор ответа Junior Основы языка спрашивают часто обновлено
Разница между == и === в Kotlin
Вопрос
Что означает a == b в Kotlin для объектов?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Вызов a.equals(b) с безопасной обработкой null. == в Kotlin это структурное равенство: компилируется примерно в a?.equals(b) ?: (b === null), поэтому не падает на null.
Варианты ответа
- Сравнение ссылок, как
==в Java - Сравнение хеш-кодов
- Вызов
a.equals(b)с безопасной обработкойnullправильный ответ - Сравнение только для строк и чисел, для остальных ошибка компиляции
Разбор
== в Kotlin это структурное равенство: компилируется примерно в a?.equals(b) ?: (b === null), поэтому не падает на null. Ссылочное сравнение пишется ===. Хеш-коды при == не сравниваются (их использует HashMap). Для любых типов == компилируется, хотя для заведомо несовместимых типов компилятор выдаст ошибку «оператор не применим».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.