map<T> 方法
- T f(
- E element
override
该可迭代当前元素通过toElement
修改。
返回一个新的惰性 <Iterable
的每个元素调用toElement
创建的。
返回的可迭代是惰性的,所以它不会在迭代自身的元素之前迭代此可迭代的元素,然后它将应用toElement
逐个创建元素。转换后的元素不会缓存。在返回的 上多次迭代将导致在每次迭代中对每个元素调用一次提供的toElement
函数。
返回的可迭代的操作方法可以跳过对任何不必要的元素的调用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);