我知道我可以连续两个列表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.
答案 0 :(得分:3)
val
是最终的。一旦为其分配了值(List(1,2,3)
),就无法将新值重新分配给它。
使用var
答案 1 :(得分:1)
使用var
代替val
。 val
无法重新分配。
答案 2 :(得分:0)
您可以在代码中的任何位置将其视为a:::b
。但请注意,即使您定义了新的val c = a:::b
,它也不会分配更多的内存大小(大小为a
和b
)。它使用a
和b
的数据共享,因此如果它使您的代码更具可读性(或使您的生活更轻松),那么创建新的val是一个好习惯,否则只需使用::: b。一般来说,这比使用'var'