метод map< T>
- T f(
- 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 f(E element)) =>
EfficientLengthMappedIterable<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/SetMixin/map.html