在 Scala 中实现以下代码的惯用方法是什么?
for (int i = 1; i < 10; i+=2) {
// i = 1, 3, 5, 7, 9
bool intercept = false;
for (int j = 1; j < 10; j+=3) {
// j = 1, 4, 7
if (i==j) intercept = true
}
if (!intercept) {
System.out.println("no intercept")
}
}
最佳答案
您可以使用 Range
和 friend :
if (((1 until 10 by 2) intersect (1 until 10 by 3)).isEmpty)
System.out.println("no intercept")
这不涉及嵌套循环(您在标题中提到),但它是在 Scala 中获得相同结果的更惯用的方法。
编辑:正如 Rex Kerr 指出的那样,上面的版本不会每次都打印消息,但以下内容会:
(1 until 10 by 2) filterNot (1 until 10 by 3 contains _) foreach (
_ => println("no intercept")
)
关于java - 在 Scala 中实现带条件的嵌套循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13162926/