Когда мы создаём data class Cat(val name: String, val mood: String) kotlin автоматически добавляет в него метод copy(), который: Метод copy() для нашего котика выглядит примерно так: fun copy(name: String = this.name, mood: String = this.mood): Cat {
return Cat(name, mood)
} То есть мы можем поменять одно поле, а остальные останутся как в исходном объекте. copy() делает поверхностную копию. Это значит: Тут видно, что copy() не делает глубокую копию. Он просто скопировал ссылку на коробочку и она одна у двух котов. При этом самый котики разные, просто с одинаковыми параметрами. 1. Например, когда нам нужно изменить только один параметр у объекта. 2. Если мы не хотим менять объект напрямую, тогда просто создаём новый — это безопаснее. Используем copy() и будет нам счастье. Дубль статей в телеграмме — https://t.me/android_junior Мои заметки в телеграмме — https://t.me/android_junior_notes