我有一个用索引压缩的列表:
val fun_i_map_e = (list.indices zip list).toMap
现在,我希望每个键的值增加num:Int
:
for (k<-0 until list.length by num)
for ((k,v) <- fun_i_map_e) {
bufferArray += v}
这里的想法在Java中是这样的:
for (k = 0; k <= list.length; k+= num){
//increment key k each time and store value into dynamic array }
然而,我得到了非常随机和完整的垃圾输出。如果有人可以提供帮助,我会很感激,因为我是斯卡拉的新人。
答案 0 :(得分:1)
你快到了。您所需要的只是使用for
塑造yield
函数,如下所示
val bufferArray = for (k <- 0 until list.length by num) yield fun_i_map_e(k)
我希望答案很有帮助
答案 1 :(得分:0)
val list = List[Int](5, 6, 7, 8)
val map = list.indices.zip(list).toMap
val num: Int = 15
val incremantedKeys = map.keys.map { k => k + num }
println("Original keys:")
println(map.keys)
println
println(s"Keys incremented by $num:")
println(incremantedKeys)