Scala for循环多个计数器

时间:2017-04-04 16:35:31

标签: scala

我是Scala的新手,我正在尝试从Java转换这个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循环,而不是循环。

2 个答案:

答案 0 :(得分:2)

你可以试试。 。

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

由于Scala for的理解与其他语言中的for()循环有很大不同,因此在初学者获得map的充分知识之前,通常应该避免使用它们, flatMapforeach

答案 1 :(得分:2)

试试这个,不需要将Range包裹在Seq

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