重新分配可变集的并集

时间:2018-08-27 14:39:35

标签: scala

我有两个相同类型的可变集:

val first = mutable.Set(1,2,4)
val second = mutable.Set(2,6,5)

我想形成第一和第二的并集,然后将结果重新分配给第一:

val first = first union second

这不起作用,我收到以下错误消息:

error: recursive value first needs type

如何将两个集合的并集重新分配给第一集合?

1 个答案:

答案 0 :(得分:2)

first声明为var。然后,当您更新first时,无需再次声明它:

var first = Set(1,2,4)
val second = Set(5, 2, 6)
first = first union second

val声明的值是不可变的。要声明变量,请使用var。然后,稍后在更新变量时,您将不再再次声明它(那里不需要valvar),只需引用它即可。 valvar首先用于创建值和变量。

但是,我鼓励您习惯于使用Scala处理不可变的值,而喜欢使用类似的

val first = Set(1,2,4)
val second = Set(5, 2, 6)
val third = first union second

这样,您可以始终确定first的值。而且,如果您要使用firstsecond的并集,则可以使用third