РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
120 of 723 menu

Оператор ==

Оператор == сравнивает два объекта на равенство и возвращает true, если они считаются равными, и false в противном случае. В первый операнд мы передаем объект, который сравниваем, во второй - объект, с которым сравниваем. По умолчанию оператор сравнивает ссылки на объекты, то есть два объекта равны только если это один и тот же экземпляр. Однако в классе оператор можно переопределить, чтобы сравнивать объекты по их содержимому. При переопределении == также следует переопределять hashCode.

Синтаксис

object1 == object2

Пример

По умолчанию два разных объекта одного класса не равны, даже если их поля совпадают:

class Point { int x; int y; Point(this.x, this.y); } void main() { Point p1 = Point(1, 2); Point p2 = Point(1, 2); print(p1 == p2); }

Результат выполнения кода:

false

Пример

Переопределим оператор ==, чтобы сравнивать точки по координатам:

class Point { int x; int y; Point(this.x, this.y); @override bool operator ==(Object other) { if (identical(this, other)) return true; return other is Point && other.x == x && other.y == y; } @override int get hashCode => Object.hash(x, y); } void main() { Point p1 = Point(1, 2); Point p2 = Point(1, 2); Point p3 = Point(3, 4); print(p1 == p2); print(p1 == p3); }

Результат выполнения кода:

true false

Пример

Оператор == можно применять и к встроенным типам. Например, сравним две строки с одинаковым содержимым:

void main() { String str1 = 'abcde'; String str2 = 'abcde'; print(str1 == str2); }

Результат выполнения кода:

true

Смотрите также

  • оператор operator,
    который описывает перегрузку операторов
  • оператор ==,
    который переопределяет сравнение объектов
  • свойство hashCode,
    которое возвращает хеш-код объекта
  • метод toString,
    который возвращает строковое представление
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить