Как упростить этот цикл for? - PullRequest
3 голосов
/ 28 декабря 2010
val xsa = List(1,2,3)
val xsb = List(1,2,3)
for (i <- 0 until xsa.size) {
    val a = xsa(i)
    val b = xsb(i)
    println(a + "_" + b)
}

Я хочу упростить длину, равную List или Array.Я надеялся сделать это так:

for (a <- xsa; b <- xsb)
    println(a + "_" + b)

Но почему он повторяется только xsb один раз?

Ответы [ 3 ]

19 голосов
/ 28 декабря 2010
for ((a,b) <- xsa zip xsb)
  println(a + "_" + b)
8 голосов
/ 28 декабря 2010
(xsa, xsb).zipped foreach ((a, b) => println (a + "_" + b))

Или

(xsa, xsb).zipped map (_ + "_" + _) foreach println
1 голос
/ 28 декабря 2010

Попробуйте Seq.zip

val x = xsa.zip(xsb)
for ((a, b) <- x)
    println(a + "_" + b)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...