我想知道Scala中两个嵌套for
循环的替代方法是什么?
我正在将C
代码转换为Scala:我使用两个map
操作而不是两个嵌套for
循环。它是正确的还是其他选择?
答案 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的替代方案是:
while
- 循环cfor
优化。请在此处查看spire github http://emberjs.jsbin.com/tudepeceli/edit?html,js,output并在此处使用:https://github.com/non/spire/search?utf8=%E2%9C%93&q=cfor 示例:
cfor(0)(_ < x.size, _ + 1)(i => {
result(i) = 2.0*x(i) + 3.0
})