我想创建一个映射,映射数字从1到10到计数值。目前,我做:
Iterable<int> spread = Iterable<int>.generate(10);
Iterable<Future<MapEntry<int, bool>>> futureEntries= spread.map((i) async {
int level = i + 1;
bool levelRight = await checkCountForLevel(level);
return MapEntry(level, levelRight);
});
List<MapEntry<int, bool>> listOfEntries = await Future.wait(futureEntries);
Map<int, bool> levelCorrect = Map.fromIterable(listOfEntries);
然而,我得到了错误:
E/flutter(29690(:[错误:flutter/lib/ui/ui_start_state.cc(199(]未处理的异常:类型'MapEntry<int,布尔>'不是"key"的"int"类型的子类型
我必须使用与Map.fromIterable不同的方法吗?
在我尝试修复您的解决方案之前,我只想知道您是否知道可以这样做?
Future<void> main() async {
final levelCorrect = {
for (var level = 1; level <= 10; level++)
level : await checkCountForLevel(level)
};
}
如果要使用自己的解决方案,则应使用Map.fromEntries
而不是Map.fromIterable
。