map<T>方法

Iterable<T> map<T>(
  1. T f(
    1. E element
    )
)
override

此可迭代的当前元素通过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 f(E element)) => MappedListIterable<E, T>(this, f);