跳到主內容

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 會保留條目的順序,因此選擇移除哪個條目可能會影響迭代器返回鍵和值的順序。