【发布时间】:2019-12-20 21:29:47
【问题描述】:
我有两个数组。第一个数组的大小大于第二个。
var first = (1 to 20).toArray
var second = (1 to 5).toArray
我想用 second 数组的元素替换 first 数组的第一个 n 元素。其中 n 是第二个数组的长度。 使用 For 循环我可以通过以下方式轻松做到这一点
var n = second.length
for(i <- 0 until n)
{
first(i) = second(i)
}
我想问有没有其他方法可以在 Scala 中以更实用的方式执行相同的操作?
【问题讨论】:
-
你所说的“更实用的方式”是什么意思?您是否正在寻找不改变第一个数组的解决方案?
-
@k0pernikus 是的。我正在寻找 For 循环的替代方案。
-
你可以使用
copyToArray,比如second.copyToArray(first)。此外,您可以根据需要将var替换为val。 -
最后,即使是函数式方法也会循环数据。此外,函数式方法将创建另一个由结果组成的数组,因此具有更大的内存消耗。
-
如果你想以函数式的方式编写,你应该首先避免使用
Array,只是说...
标签: arrays scala loops functional-programming