非常简单的问题:我想做这样的事情:
var arr1: Array[Double] = ...
var arr2: Array[Double] = ...
var arr3: Array[(Double,Double)] = arr1.zip(arr2)
arr3.foreach(x => {if (x._1 > treshold) {x._2 = x._2 * factor}})
我尝试了很多不同的语法版本,但都失败了。我该如何解决这个问题?这不会很困难...
Thanks!
解决这个问题的多种方法,例如考虑使用collect
它提供了一个不可变的集合arr4
, 如下,
val arr4 = arr3.collect {
case (x, y) if x > threshold => (x ,y * factor)
case v => v
}
有了这样的理解,
for ((x, y) <- arr3)
yield (x, if (x > threshold) y * factor else y)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)