我有以下程序:(Scala 2.9.2,Java6)
object Forcomp {
def main(args: Array[String]): Unit = {
val xs = List(-1, 0, 1)
val xss = for (a <- xs; b <- xs if a != 0 && b != 0) yield (a,b)
println(xss)
}
}
它会产生这个输出:List((-1,-1), (-1,1), (1,-1), (1,1))
我本来希望它只过滤掉a
和b
都是0 的值 - 不是所有的值都是0或 0。a
b
我可以通过将 if 子句更改为以下内容来获得我想要的行为:if (a,b) != (0,0)
– 但是,我真的必须这样做吗?这是一个错误还是这是故意的行为?一方面,我对此感到惊讶。