跳到主要內容

equal_elements_in_set

集合字面量中的兩個元素不應相等。

描述

#

當非常量集合中的一個元素與同一集合中之前的元素相同時,分析器會產生此診斷資訊。如果兩個元素相同,則第二個值將被忽略,這使得同時擁有這兩個元素變得毫無意義,並且很可能表明存在錯誤。

示例

#

以下程式碼會產生此診斷資訊,因為元素 1 出現了兩次

dart
const a = 1;
const b = 1;
var s = <int>{a, b};

常見修復

#

如果兩個元素都應包含在集合中,則更改其中一個元素

dart
const a = 1;
const b = 2;
var s = <int>{a, b};

如果只需要其中一個元素,則移除不需要的那個元素

dart
const a = 1;
var s = <int>{a};

請注意,集合字面量會保留其元素的順序,因此選擇移除哪個元素可能會影響迭代器返回元素的順序。