2017-04-04 16 views
0

私はスカラ座に新たなんだ、と私は、Javaからループのためにこれを変換しようとしています:Scalaのforループは複数のカウンタ

for(int x=1, y=2; x<=5; x++, y+=2) 
    System.out.println(x+y); 

私は私がすることはできませんので、Scalaの中の値を圧縮しようとしています

val a = Seq(1 to 5) 
val b = Seq(2 to 10 by 2) 
for((x,y) <- a.zip(b)) 
    println(x+y) 

しかし、上記のコードは、このエラー与えている:非ネストされている複数のカウンタ持っている方法を見つける

型の不一致が。 found:scala.collection.immutable.Range required:String

これを修正する方法を知っている人はいますか?私はforループではなく、whileループで行うほうが好きです。

+0

を3 〜15 by 3) 'の代わりに2つの変数があります。 – maraca

答えて

2

この、SeqRangeをラップする必要はありません試してみてください:私はScalaのを知りませんが、あなたはこのようにそれをやっている場合は、直接 `配列(と結果のために行くことができる

val a = 1 to 5 
val b = 2 to 10 by 2 
for(
    (x,y) <- a.zip(b) 
) 
println(x+y) 
2

お試しください。 。 。

((1 to 5) zip (2 to 10 by 2)).foreach(x => println(x._1+x._2)) 

Scalaのfor内包表記は、他の言語でfor()ループから十分に異なっているので、彼らはmapflatMap、およびforeachの十分な知識を得てきたまで、初心者がそれらを避けるためにのために、それは多くの場合、良いアイデアです。

関連する問題