Spec-Zone.ru › Dart 2

dart:collection

Метод map<T>

Iterable<T> map<T>(
  1. T toElement(
    1. E element
    )
)
override

Текущие элементы этого итерируемого объекта преобразуются с помощью toElement.

Возвращает новый ленивый Iterable с элементами, созданными путём вызова toElement для каждого элемента этого Iterable в порядке итерации.

Возвращаемый итерируемый объект ленивый, поэтому он не будет итерировать элементы этого итерируемого объекта, пока сам не будет итерироваться, а затем будет применять toElement для создания одного элемента за раз. Преобразованные элементы не кэшируются. Многократное итерирование по возвращаемому Iterable вызовет функцию toElement один раз на каждый элемент при каждой итерации.

Методы возвращаемого итерируемого объекта разрешено опустить вызов toElement для любого элемента, где результат не нужен. Например, elementAt может вызвать toElement только один раз.

Эквивалентно:

Iterable<T> map<T>(T toElement(E e)) sync* {
  for (var value in this) {
    yield toElement(value);
  }
}

Пример:

var products = jsonDecode('''
[
  {"name": "Screwdriver", "price": 42.00},
  {"name": "Wingnut", "price": 0.50}
]
''');
var values = products.map((product) => product['price'] as double);
var totalPrice = values.fold(0.0, (a, b) => a + b); // 42.5.

Реализация

Iterable<T> map<T>(T toElement(E element)) =>
    MappedIterable<E, T>(this, toElement);

© 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/IterableMixin/map.html

Spec-Zone.ru

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