跳到主要内容

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 返回键和值的顺序。