Основываясь на некоторых ответах по переполнению стека, я попытался создать «расширение» List для mapIndexed, то есть функцию карты, которая также передает индекс. Вот что я получил:
mixin MapIndexed on List {
Iterable<U> mapIndexed<T, U>(U Function(T e, int i) f) {
int i = 0;
return map<U>((it) { final t = i; i++; return f(it, t); });
}
}
Проблема в том, что я не знаю, как это назвать. Я создал это на основе концепции расширения iOS Swift. В конце концов, я просто хочу, чтобы я мог позвонить result = myList.mapIndexed((element, index) => doMapping);
. Как я могу сделать это правильно? То, как это сейчас, самое близкое, что я могу сделать для достижения этой цели, это функция:
Iterable<U> mapIndexed<T, U>(List<T> list, U Function(T e, int i) f) {
int i = 0;
return list.map<U>((it) { final t = i; i++; return f(it, t); });
}
result = mapIndexed(list, (element, index) => doMapping);