在评论中解释集合中没有重复项的正确数学方法

proper mathematics way to explain in a comment that there is no duplicate items in a set

我正在写一些代码,我希望我的代码有很好的文档记录。
代码中有一部分我正在检查当尝试将新元素 E 插入列表 L 时,元素 E 将是唯一的(因此 L 中没有其他元素等于他)。

我很难写一个用户友好的数学评论,看起来像下面的例子

只有当颜色为黑色 element.size > 10.
时,该函数才会将所有元素(列表 L 中的元素)字段 E.color 更改为 "Black" 所以在那种情况下我会写评论 -
[ X.color="Black" | X in L, X.size > 10]

但是对于上面的场景,我找不到任何满意的数学评论。

根据定义,数学集内部没有重复项,因此也许使用 set 而不是 list 可以解决您的问题。

但是,如果现在很难改变,那么您可以这样写:

[ L.insert(E) | E not in L ]

其中 E 是元素,L 是列表。

您的问题的详尽答案需要两个观察:

  1. 最佳编码实践要求您非常了解集合以及何时使用它们。因此,您需要为合适的工作选择合适的系列。在这种情况下,正如其他评论中所建议的那样,您需要使用 Set 而不是列表。 Set 在底层使用 Map,将您的元素作为键,将值作为 DEFAULT。每次向 Set 添加元素时,都会计算它的哈希值,并使用等于现有元素进行比较。所以不允许重复。
  2. 我真的很感激你想写好的评论,但是你不需要这样做,原因如下:

    • List 和 Sets 行为已在很大程度上记录在案,因此没有人期望您对它们发表评论;
    • Refactoring and Clean code 这样的书告诉我们,好的代码不应该被注释,因为它应该是自我解释的。这意味着您的 method/class/variable 名称应该告诉我该方法在做什么。