syn*_*pse 1 for-loop scala for-comprehension
如何做Scala相当于这个Java代码:
int i = 0;
for(String x: xs) {
for(String y : ys) {
foo(x, y, i);
i+=10;
}
}
Run Code Online (Sandbox Code Playgroud)
有多种方法可以做到:
var i = 0
for(x <- xs;y <- ys) {
foo(x,y,i)
i = (i+10)
}
Run Code Online (Sandbox Code Playgroud)
在不使用外部功能的情况下执行此操作i:
xs.foldLeft(0){(a:Int,b) =>
ys.foldLeft(a){(c:Int, p) =>
foo(b,p,a)
c+10
}
}
Run Code Online (Sandbox Code Playgroud)