2010-12-28 3 views
3
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) 
} 

長さを簡略化したいのですが、「リストまたは配列」と同じです。私はこのようにそれを行うことを望んだ:この 'for'ループを単純化するには?

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

しかし、なぜそれが一度だけxsbを繰り返すのでしょうか?

答えて

19
for ((a,b) <- xsa zip xsb) 
    println(a + "_" + b) 
1

ポイントアウト `zipped`方法のために良いSeq.zip

val x = xsa.zip(xsb) 
for ((a, b) <- x) 
    println(a + "_" + b) 
8
(xsa, xsb).zipped foreach ((a, b) => println (a + "_" + b)) 

それとも

(xsa, xsb).zipped map (_ + "_" + _) foreach println 
+0

を試してみて、THX –

関連する問題