首页 > 解决方案 > Scala将值附加到多个向量

问题描述

我创建一个这样的多重向量:

val a = Vector.fill(3,0)(0) 

它输出:

Vector(Vector(), Vector(), Vector(), Vector(), Vector(), Vector())

我想将一个整数值附加到第一个Vector().

结果应如下所示:

Vector(Vector(2), Vector(), Vector(), Vector(), Vector(), Vector()) 

我从互联网上尝试了很多东西,这种方式但它不起作用...... a(0).appended(2)

我怎样才能做到这一点?

标签: scalavectormultidimensional-arrayappend

解决方案


不能将元素添加到不可变类型,例如Vector. 您可以在@Mateusz 评论中指定的一篇文章中阅读更多相关信息。当您将新元素“添加”到单维向量时,您基本上会创建一个新向量。

如果你想以同样的方式添加,你可以创建一个新的向量,例如这样:

val a = Vector.fill(3, 0)(0)
val b = (a.head :+ 2) +: a.tail

然后b就会有你想要的。尽管如此,在created 之后ba仍然与 created 相同:

Vector(Vector(), Vector(), Vector())

代码运行可以在Scastie找到。


推荐阅读