嵌套 For 循环
这显示了如何迭代多个变量:
for {
x <- 1 to 2
y <- 'a' to 'd'
} println("(" + x + "," + y + ")")
(注意,to
这里是一个返回包含范围的中缀运算符方法。请参阅此处的定义。)
这会创建输出:
(1,a)
(1,b)
(1,c)
(1,d)
(2,a)
(2,b)
(2,c)
(2,d)
请注意,这是一个等效的表达式,使用括号而不是括号:
for (
x <- 1 to 2
y <- 'a' to 'd'
) println("(" + x + "," + y + ")")
为了将所有组合转换为单个向量,我们可以将结果设置为 val
:
val a = for {
x <- 1 to 2
y <- 'a' to 'd'
} yield "(%s,%s)".format(x, y)
// a: scala.collection.immutable.IndexedSeq[String] = Vector((1,a), (1,b), (1,c), (1,d), (2,a), (2,b), (2,c), (2,d))