expand<T> 方法
- Iterable<
T> f(- E element
override
将此Iterable的每个元素展开为0个或多个元素。
生成的Iterable通过每个元素的toElements
遍历元素,按迭代顺序执行。
返回的Iterable是懒加载的,每次返回的iterable迭代时,都会为此iterable的每个元素调用toElements
。
示例
Iterable<int> count(int n) sync* {
for (var i = 1; i <= n; i++) {
yield i;
}
}
var numbers = [1, 3, 0, 2];
print(numbers.expand(count)); // (1, 1, 2, 3, 1, 2)
等同于
Iterable<T> expand<T>(Iterable<T> toElements(E e)) sync* {
for (var value in this) {
yield* toElements(value);
}
}
实现
Iterable<T> expand<T>(Iterable<T> f(E element)) =>
ExpandIterable<E, T>(this, f);