巢狀 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))