繁体   English   中英

Scala中可变HashSet类中的更新方法

[英]Update method in mutable HashSet class in Scala

Scala的可变集合中的HashSet类支持update方法。

但是,名称update似乎违反直觉(对我而言至少)。 这里的文档中说

此方法允许根据所包含参数的值在此集合中添加或删除元素elem。 通常,将使用以下语法:set(elem)= true

我尝试在Scala控制台上使用update 当我调用update(elem, true)而不是用新版本更新elem时,当元素存在时它什么也没做。

当update(elem,false)时,它删除了elem。

我的问题是update方法的目的是什么,因为它不updating任何内容

我认为更新是针对集合而不是集合中的元素的(“更新”元素没有意义,它仅对具有键-值关系的集合有意义),实际上如果您查看源代码,此方法会更新集合:

def update(elem: A, included: Boolean) {
  if (included) this += elem else this -= elem
}

因此,基本上可以使用included可变告诉阉添加或删除元素,在你的情况下添加两次相同的元素不会给你任何更新,因为一组不允许重复。

为什么我会使用update而不是addremove update ,这超出了我的理解范围。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM