map<T> 方法
- T toElement(
- E e
使用 toElement
修改的此可迭代对象的当前元素。
返回一个新的惰性 Iterable,其元素通过在迭代顺序中对此 Iterable
的每个元素调用 toElement
来创建。
返回的可迭代对象是惰性的,因此它不会在此可迭代对象的元素迭代之前迭代这些元素,然后在它自身迭代时,将对每个元素逐一应用 toElement
来创建一个元素。转换后的元素不会被缓存。对返回的 Iterable 进行多次迭代将每次迭代对每个元素调用一次提供的 toElement
函数。
返回的可迭代对象上的方法允许省略对不需要结果的任何元素调用 toElement
。例如,elementAt 可能只调用一次。
相当于
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 e)) => MappedIterable<E, T>(this, toElement);