跳到主内容

equal_keys_in_map

Map 字面量中的两个键不应相等。

描述

#

当非 const map 中的某个键与同一 map 中之前的键相同时,分析器会生成此诊断消息。如果两个键相同,则第二个值会覆盖第一个值,这使得同时拥有这对键值对变得毫无意义,并很可能表明存在错误。

示例

#

以下代码会生成此诊断消息,因为键 a 和 b 的值相同。

dart
const a = 1;
const b = 1;
var m = <int, String>{a: 'a', b: 'b'};

常见修复方法

#

如果 map 中应包含这两个条目,则修改其中一个键。

dart
const a = 1;
const b = 2;
var m = <int, String>{a: 'a', b: 'b'};

如果只需要其中一个条目,则移除不需要的那个。

dart
const a = 1;
var m = <int, String>{a: 'a'};

请注意,字面量 map 会保留条目的顺序,因此选择移除哪个条目可能会影响迭代器返回键和值的顺序。