如何在Scala中使用自动增量索引来理解

Mat*_*ska 6 scala for-comprehension

是否可以使用自动增量计数器来进行Scala中的理解?

就像是

for (element <- elements; val counter = counter+1) yield NewElement(element, counter)
Run Code Online (Sandbox Code Playgroud)

ten*_*shi 16

我相信,您正在寻找列表和其他集合zipWithIndex上可用的方法.以下是它的用法的一个小例子:

scala> val list = List("a", "b", "c")
list: List[java.lang.String] = List(a, b, c)

scala> list.zipWithIndex
res0: List[(java.lang.String, Int)] = List((a,0), (b,1), (c,2))

scala> list.zipWithIndex.map{case (elem, idx) => elem + " with index " + idx}
res1: List[java.lang.String] = List(a with index 0, b with index 1, c with index 2)

scala> for ((elem, idx) <- list.zipWithIndex) yield elem + " with index " + idx
res2: List[java.lang.String] = List(a with index 0, b with index 1, c with index 2)
Run Code Online (Sandbox Code Playgroud)