Spec-Zone.ru › Dart 2

dart:collection

Метод contains

bool contains(
  1. Object? element
)
inherited

Возвращает значение true, если коллекция содержит элемент, равный element.

Этот оператор проверяет каждый элемент в порядке, чтобы убедиться, что он равен element, если у него нет более эффективного способа найти элемент, равный element.

По умолчанию для определения равенства element и элемента итерируемого объекта используется оператор Object.==.

У некоторых типов итерируемых объектов может использоваться другое равенство для элементов. Например, у класса Set может быть настраиваемое равенство (см. Set.identity), которое используется его contains. Точно так же Iterable, возвращаемый методом Map.keys, должен использовать такое же равенство, которое используется Map для ключей.

Пример:

final gasPlanets = <int, String>{1: 'Jupiter', 2: 'Saturn'};
final containsOne = gasPlanets.keys.contains(1); // true
final containsFive = gasPlanets.keys.contains(5); // false
final containsJupiter = gasPlanets.values.contains('Jupiter'); // true
final containsMercury = gasPlanets.values.contains('Mercury'); // false

Реализация

bool contains(Object? element) {
  int length = this.length;
  for (int i = 0; i < length; i++) {
    if (elementAt(i) == element) return true;
    if (length != this.length) {
      throw ConcurrentModificationError(this);
    }
  }
  return false;
}

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-collection/ListQueue/contains.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API