Метод copy() автоматически генерируется компилятором Kotlin для каждого data class. Он создаёт новый экземпляр класса, позволяя тебе изменять отдельные свойства, оставляя остальные без изменений.
Каждый параметр в copy() соответствует свойству data class и использует значения текущего экземпляра в качестве значений по умолчанию. Тебе нужно передать только те свойства, которые ты хочешь изменить.
data class User(val name: String, val age: Int)
val alice = User("Alice", 30)
val olderAlice = alice.copy(age = 31)
// Result: User(name="Alice", age=31)
Здесь name сохраняется автоматически, а изменяется только age.
copy() всегда возвращает совершенно новый объектval, так как переприсваивание не требуетсяViewModel в Android)Без copy() изменение иммутабельного объекта требовало бы его ручной пересборки с перечислением всех свойств. Метод copy() избавляет от этого шаблонного кода, делая код чище и менее подверженным ошибкам, при этом data classes остаются потокобезопасными по умолчанию благодаря иммутабельности.
Метод copy() в data классах Kotlin автоматически генерируется компилятором и создаёт новый экземпляр вместо модификации исходного объекта.
Новый — ещё не проверен сообществом
Вы