Scala中嵌套for循环的替代方法是什么?

时间:2015-10-08 04:13:27

标签: scala

我想知道Scala中两个嵌套for循环的替代方法是什么?

我正在将C代码转换为Scala:我使用两个map操作而不是两个嵌套for循环。它是正确的还是其他选择?

2 个答案:

答案 0 :(得分:2)

举一些例子来看看你的问题有多难。

大多数情况下,您应该只使用单个for循环而不是两个嵌套循环。请考虑以下代码段:

scala> val array = Array.tabulate(2,3)( (a,b) => a+b )
array: Array[Array[Int]] = Array(Array(0, 1, 2), Array(1, 2, 3))

scala> var sum : Int = 0
sum: Int = 0

scala> for {
     | a <- array
     | b <- a
     | } {
     | sum += b
     | }

scala> sum
res175: Int = 9

答案 1 :(得分:1)

  

scala中两个嵌套for循环的替代方法是什么?

Scala for循环与C-ish for循环无法比较。最接近C的替代方案是:

示例:

cfor(0)(_ < x.size, _ + 1)(i => {
  result(i) = 2.0*x(i) + 3.0
})