在评论中解释集合中没有重复项的正确数学方法
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 是列表。
您的问题的详尽答案需要两个观察:
- 最佳编码实践要求您非常了解集合以及何时使用它们。因此,您需要为合适的工作选择合适的系列。在这种情况下,正如其他评论中所建议的那样,您需要使用 Set 而不是列表。 Set 在底层使用 Map,将您的元素作为键,将值作为 DEFAULT。每次向 Set 添加元素时,都会计算它的哈希值,并使用等于现有元素进行比较。所以不允许重复。
我真的很感激你想写好的评论,但是你不需要这样做,原因如下:
- List 和 Sets 行为已在很大程度上记录在案,因此没有人期望您对它们发表评论;
- 像 Refactoring and Clean code 这样的书告诉我们,好的代码不应该被注释,因为它应该是自我解释的。这意味着您的 method/class/variable 名称应该告诉我该方法在做什么。
我正在写一些代码,我希望我的代码有很好的文档记录。
代码中有一部分我正在检查当尝试将新元素 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 是列表。
您的问题的详尽答案需要两个观察:
- 最佳编码实践要求您非常了解集合以及何时使用它们。因此,您需要为合适的工作选择合适的系列。在这种情况下,正如其他评论中所建议的那样,您需要使用 Set 而不是列表。 Set 在底层使用 Map,将您的元素作为键,将值作为 DEFAULT。每次向 Set 添加元素时,都会计算它的哈希值,并使用等于现有元素进行比较。所以不允许重复。
我真的很感激你想写好的评论,但是你不需要这样做,原因如下:
- List 和 Sets 行为已在很大程度上记录在案,因此没有人期望您对它们发表评论;
- 像 Refactoring and Clean code 这样的书告诉我们,好的代码不应该被注释,因为它应该是自我解释的。这意味着您的 method/class/variable 名称应该告诉我该方法在做什么。