跳到主要内容

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};

请注意,集合字面量会保留其元素的顺序,因此选择移除哪个元素可能会影响迭代器返回元素的顺序。