我有简单的 Scala 代码:
object CollectionSnippets extends App {
var closureVal = 0
def lineNum(s:String) : String = {
closureVal = closureVal + 1;
closureVal.toString + "." + s;
}
val list1 = List("aline","aline","aline")
val list2 = list1.map(lineNum)
list2.foreach(println)
}
问题是我正在改变一个变量,我觉得这不是正确的做法。
你能建议我一个更好的方法吗?
最佳答案
您可以使用 zipWithIndex
。
scala> list1.zipWithIndex.map(t => t._2 + ": " + t._1)
res0: List[String] = List(0: aline, 1: aline, 2: aline)
scala> res0.foreach(println(_))
0: aline
1: aline
2: aline
关于scala - 用于将列表映射到列表元素顺序的简单 Scala 代码。 (用于生成行号),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24155532/