Spec-Zone.ru › Dart 2

dart:collection

метод map<T>

Iterable<T> map<T>(
  1. T f(
    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 f(E element)) => MappedListIterable<E, T>(this, f);

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

Spec-Zone.ru

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