据我所知,以下表达式
for{i <- 0 to 10
j <- 0 to 10} {...}
等于
for(i <- 0 to 10) {
for(j <- 0 to 10) {
.....
}
}
但是,如何将以下表达式转换为第一种情况?
for(i <- 0 to 10) {
**execute()**
for(j <- 0 to 10) {
.....
}
}
答案 0 :(得分:5)
您可以简单地添加一行而不是执行执行并将结果存储在变量中。例如:
for{i <- 0 to 10;
k = doSomethingWith(i);
j <- 0 to 10} {... do something with any or all of i,j,k ...}
如果执行仅是副作用(即返回类型为Unit),或者您不关心返回值,则只需指定为下划线。例如:
for{i <- 0 to 10;
_ = println(s"i = $i");
j <- 0 to 10} {... do something with i,j ...}