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

Сравнение объектов в Dart

Функция identical проверяет, указывают ли две переменные на один и тот же объект в памяти. Разные экземпляры класса даже с одинаковыми полями при identical не равны:

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

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

var a = Post("note", 21); var b = Post("note", 21); var c = a; print(identical(a, b)); print(identical(a, c));

Оператор == у обычного класса без переопределения сравнивает ссылки - результат совпадает с identical:

class Post { String title; Post(this.title); }

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

var a = Post("note"); var b = Post("note"); print(a == b); print(identical(a, b));

Сравнивать «смысл» двух объектов по полям можно вручную - проверить каждое поле отдельно:

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

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

var a = Post("note", 21); var b = Post("note", 21); var sameData = a.title == b.title && a.likes == b.likes; print(sameData);

Создайте два разных объекта Post с одинаковым заголовком. Выведите результат identical для этих переменных.

Создайте объект Post и вторую переменную, которой присвоите тот же объект. Выведите результат identical.

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