考虑以下代表"邻居"
的循环for(x <- -1 to 1; y <- -1 to 1)
{
// If we are in the current field, just get the one above
if((x == 0) && (y == 0)) y = 1 // Problem: Reassignment to val
}
如您所见,我将重新分配val编译错误。在Java中我会做&#34;继续&#34;跳过那个。
对此有什么优雅的解决方案?
答案 0 :(得分:6)
使用警卫:
for (x <- -1 to 1; y <- -1 to 1; if !(x == 0 && y == 0)) {
...
}
可替换地:
for (x <- -1 to 1; y <- -1 to 1 by (if (x == 0) 2 else 1)) {
...
}
我认为第一个更具可读性。