Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktOpObCp 28 of 123 menu
◀ ▶

Копирование ссылок на объекты в Kotlin

При присваивании объекта другой переменной копируется не сам экземпляр, а ссылка на него. Обе переменные указывают на один объект в памяти:

class User(var name: String, var age: Int) fun main() { val user = User("john", 30) val alias = user println(user === alias) }

Изменение свойства по одной переменной видно и у второй - меняется общий объект:

class User(var name: String, var age: Int) fun main() { val user = User("john", 30) val test = user test.name = "eric" println(user.name) println(test.name) }

Так же ведут себя объекты внутри массива или списка: элемент хранит ссылку, и изменение полей объекта сохраняется для всех переменных с той же ссылкой:

class User(var age: Int) fun main() { val users = mutableListOf(User(20)) val first = users[0] first.age = 25 println(users[0].age) }

Создайте объект User и присвойте его переменной copy. Измените имя в copy. Выведите имя из исходной переменной.

Запишите объект Employee в элемент списка. Возьмите этот элемент в отдельную переменную, измените зарплату. Выведите зарплату из списка.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить