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

Копирование ссылки в Dart

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

class Post { String title; int likes; Post(this.title, this.likes); }

Создадим объекты и выведем результат:

var post = Post("note", 30); var alias = post; print(identical(post, alias));

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

class Post { String title; int likes; Post(this.title, this.likes); }

Создадим объект, заполним поля и проверим результат:

var post = Post("note", 30); var test = post; test.title = "eric"; print(post.title); print(test.title);

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

class Post { int likes; Post(this.likes); }

Поместим объекты в список:

var posts = <Post>[Post(20)]; var first = posts[0]; first.likes = 25; print(posts[0].likes);

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

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

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