map< T> method
- T toElement(
- E element
Текущие элементы этой последовательности, преобразованные с помощью 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)) =>
MappedListIterable<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.19.6/dart-collection/ListQueue/map.html