我有两个相同类型的可变集:
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
如何将两个集合的并集重新分配给第一集合?
答案 0 :(得分:2)
将first
声明为var
。然后,当您更新first
时,无需再次声明它:
var first = Set(1,2,4)
val second = Set(5, 2, 6)
first = first union second
用val
声明的值是不可变的。要声明变量,请使用var
。然后,稍后在更新变量时,您将不再再次声明它(那里不需要val
或var
),只需引用它即可。 val
和var
首先用于创建值和变量。
但是,我鼓励您习惯于使用Scala处理不可变的值,而喜欢使用类似的
val first = Set(1,2,4)
val second = Set(5, 2, 6)
val third = first union second
这样,您可以始终确定first
的值。而且,如果您要使用first
和second
的并集,则可以使用third
。