我有一个关于Java的代码:
int[] array = new int[100];
for (int k = 0; k < array.length * 2; k++) {
// some action
}
在for
循环中,我想将数组长度加倍并将其用于迭代。但是我如何在Scala中获得相同的东西?
我正在尝试使用zipWithIndex
,但不允许双重条件:
arr.zipWithIndex.foreach {
case (el, idx) => {...}
}
要像原始的for循环中那样遍历索引,可以只使用Range:
scala> val array = List("a", "b", "c")
array: List[String] = List(a, b, c)
scala> (0 until array.length * 2).foreach(println(_))
0
1
2
3
4
5
要获取索引和元素元组,可以对原始数组(两次)或两次数组使用zipWithIndex,具体取决于所需的结果:
scala> (array.zipWithIndex ++ array.zipWithIndex).foreach{
| case (x, i) => println(s"$i: $x")
| }
0: a
1: b
2: c
0: a
1: b
2: c
scala> (array ++ array).zipWithIndex.foreach{
| case (x, i) => println(s"$i: $x")
| }
0: a
1: b
2: c
3: a
4: b
5: c
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句