scala - 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)
我怎样才能做到这一点?
解决方案
不能将元素添加到不可变类型,例如Vector
. 您可以在@Mateusz 评论中指定的一篇文章中阅读更多相关信息。当您将新元素“添加”到单维向量时,您基本上会创建一个新向量。
如果你想以同样的方式添加,你可以创建一个新的向量,例如这样:
val a = Vector.fill(3, 0)(0)
val b = (a.head :+ 2) +: a.tail
然后b
就会有你想要的。尽管如此,在created 之后b
,a
仍然与 created 相同:
Vector(Vector(), Vector(), Vector())
代码运行可以在Scastie找到。
推荐阅读
- python - 记录错误时的 Loguru 回调函数
- typescript - 使用 webpack 在 typescript 生产构建中删除断言
- java - 阐明 Lambda 表达式的语法
- r - 尝试使用 for-loop 访问 gregexpr 结果的第一个值但只获得 -1 - 意外结果
- reactjs - React-bootstrap 导航栏崩溃问题
- java - java.io.InvalidClassException: com.kingmo.utils.abstractions.SerializableLocation; 没有有效的构造函数,但我有正确的构造函数
- ktor - Ktor 缓存来自身份验证管道的响应参数
- vb.net - 将文本文件发送到共享打印机
- python - 正则表达式 - 根据后视匹配不同的长度(Python re)
- jquery - 如何在 asp.net UpdatePanel 中使用 JQuery 模式对话框来聚焦关闭按钮