equal_keys_in_const_map
常量 map 字面量中的两个键不能相等。
描述
#当常量 map 中的某个键与同一 map 中之前的键相同时,analyzer 会生成此诊断。如果两个键相同,则第二个值将覆盖第一个值,这样包含两个键值对就毫无意义了。
示例
#以下代码会生成此诊断,因为键 1
被使用了两次
dart
const map = <int, String>{1: 'a', 2: 'b', 1: 'c', 4: 'd'};
常见修复方法
#如果两个条目都应包含在 map 中,请更改其中一个键以使其不同
dart
const map = <int, String>{1: 'a', 2: 'b', 3: 'c', 4: 'd'};
如果只需要其中一个条目,则移除不需要的那个
dart
const map = <int, String>{1: 'a', 2: 'b', 4: 'd'};
请注意,字面量 map 会保留其条目的顺序,因此选择移除哪个条目可能会影响 iterator 返回键和值的顺序。