How can I use map and receive an index as well in Scala?

前端 未结 8 1835
轮回少年
轮回少年 2020-12-12 23:07

Is there any List/Sequence built-in that behaves like map and provides the element\'s index as well?

8条回答
  •  孤街浪徒
    2020-12-12 23:43

    I believe you're looking for zipWithIndex?

    scala> val ls = List("Mary", "had", "a", "little", "lamb")
    scala> ls.zipWithIndex.foreach{ case (e, i) => println(i+" "+e) }
    0 Mary
    1 had
    2 a
    3 little
    4 lamb
    

    From: http://www.artima.com/forums/flat.jsp?forum=283&thread=243570

    You also have variations like:

    for((e,i) <- List("Mary", "had", "a", "little", "lamb").zipWithIndex) println(i+" "+e)
    

    or:

    List("Mary", "had", "a", "little", "lamb").zipWithIndex.foreach( (t) => println(t._2+" "+t._1) )
    

提交回复
热议问题