Стоит ли использовать var в data class

«Стоит ли использовать var в data class» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, в data class лучше избегать var и использовать val для свойств.

Причины:

  1. Иммутабельностьval делает объект неизменяемым, что безопаснее в многопоточной среде.
  2. Корректность equals()/hashCode() – изменение var после добавления в коллекцию может нарушить контракты.
  3. Четкость модели данныхdata class обычно представляет состояние, а не поведение.

Пример:

data class User(val id: Long, val name: String) // ✅ Лучше
data class MutableUser(var id: Long, var name: String) // ❌ Риск побочных эффектов

Если изменение полей необходимо, лучше создать копию через copy().