Scala:通过重新分配将列表附加到其他列表:重新分配给val错误

时间:2015-05-27 12:26:02

标签: scala scala-collections

我知道我可以连续两个列表a& b在scala中得到这样的c。但是,如果我不想要额外的变量c并将结果保存在变量a中,我怎么能做同样的事情。

 val a = List(1,2,3)
 val b = List(4,5,6)
 val c = a ::: b (I do not want this extra variable c and want to hold result in val a only)

Basically appending List b to List a:
Something like [ a = a ::: b]
This is giving me error: Reassignment to val.

3 个答案:

答案 0 :(得分:3)

val是最终的。一旦为其分配了值(List(1,2,3)),就无法将新值重新分配给它。 使用var

答案 1 :(得分:1)

使用var代替valval无法重新分配。

答案 2 :(得分:0)

您可以在代码中的任何位置将其视为a:::b。但请注意,即使您定义了新的val c = a:::b,它也不会分配更多的内存大小(大小为ab)。它使用ab的数据共享,因此如果它使您的代码更具可读性(或使您的生活更轻松),那么创建新的val是一个好习惯,否则只需使用::: b。一般来说,这比使用'var'

更好