dart - 通过 map 函数将 Dart 映射到另一个地图
问题描述
假设我有一张地图:
Map<String, int> source = {'a':1, 'b':2, 'c':3};
我想得到这个:
Map<String, int> expected = {'a': 1, 'b':4, 'c':9 };
我想使用 map 函数来实现结果:
Map<String,int> actual = source.map((key,value)=> {key: value * value});
但是,我收到了这个错误:
The return type 'Map<String, int>' isn't a 'MapEntry<String, int>', as required by the closure's context
难道我们不能使用map的map函数来获取另一个这样的地图吗?
解决方案
映射方法应该返回一个 MapEntry 实例,因为您可以更改键和值。所以你的代码应该是这样的:
void main() {
final source = {'a': 1, 'b': 2, 'c': 3};
final actual = source.map((key, value) => MapEntry(key, value * value));
print(actual); // {a: 1, b: 4, c: 9}
}
推荐阅读
- scala - 使用 'type' 关键字创建 HKT 类型时,如何在模式匹配中处理它们?
- python - Odoo 11 社区工资单模块
- c# - 通过 Linq 左连接使用来自多个 MongoDB 集合的信息填充类
- ios - 代号一构建错误,无法在IOS应用中构建
- vba - 从特定工作表复制未知范围
- linux - IFS=';' 读取 -a 数组不拆分“;” 当输入包含换行符时正确
- javascript - TypeError:无法读取未定义的属性“id”(也是“startWith”)
- python - 拆分文本而不分开,例如“纽约”
- javascript - 如何验证 IP 地址以确保用户在四部分中输入 3 位数字?
- ios - NSAttributed 字符串文档类型问题