Scala的可变集合中的HashSet类支持更新方法。
然而,名称update
似乎违反直觉(至少对我来说)。从文档here中可以看出
此方法允许根据所包含参数的值在此集合中添加或删除元素elem。通常,可以使用以下语法: set(elem)= true
我尝试在scala控制台上使用update
。当我调用update(elem, true)
而不是用新版本更新elem时,它只是在元素存在时什么也没做。
更新时(elem,false),它删除了元素。
我的问题是update
方法的目的是什么,因为它不是updating
任何
答案 0 :(得分:2)
我认为更新是针对集合而不是集合中的元素(“更新”元素没有意义,它只对具有键值关系的集合有意义),以及事实上,如果你看一下源代码,这个方法会更新集合:
def update(elem: A, included: Boolean) {
if (included) this += elem else this -= elem
}
所以基本上你可以使用included
变量来告诉添加或删除元素,在你的情况下,添加两次相同的元素不会给你任何更新,因为一个集合不允许重复。< / p>
为什么会使用update
代替add
或remove
,这超出了我的理解范围。