【发布时间】:2019-12-19 08:08:35
【问题描述】:
我正在尝试在 Iterable 上创建一个静态扩展,如下所示:
extension IterableExtensions<T> on Iterable<T> {
Iterable<E> mapIndexed<E, T>(E Function(int index, T item) f) sync* {
var index = 0;
for (final item in this) {
yield f(index, item);
index = index + 1;
}
}
}
但这给了我一个错误:
The argument type 'T' can't be assigned to the parameter type 'T'.
而如果我转换编译器很高兴:
extension IterableExtensions on Iterable{
Iterable<E> mapIndexed<E, T>(E Function(int index, T item) f) sync* {
var index = 0;
for (final item in this) {
yield f(index, item as T);
index = index + 1;
}
}
}
我不确定我在这里做错了什么?
【问题讨论】:
标签: dart