val x = Array(1,0,0,0,1)
val y = x.zipWithIndex
// Array[(Int, Int)] = Array((1,0), (0,1), (0,2), (0,3), (1,4))
我想获取索引(0,1,2,3,4)
并将它们存储在另一个数组中。
我曾经以这种方式使用foreach,但是我不知道该怎么做。
val z = y.foreach({case (a,b)=> print(b) })
这给了我索引,但是如果我使用z.toString,它是一个空字符串。
我该如何解决?
答案 0 :(得分:4)
我有一个数组。
val x = Array(1,0,0,0,1)
我想获取索引(0,1,2,3,4)并将其存储在另一个数组中。
val y = x.indices.toArray
似乎是没有意义的锻炼。
答案 1 :(得分:1)
这吗?
scala> Array(1,0,0,0,1).zipWithIndex.map(_._ 2) val res1:Array [Int] = Array(0,1,2,3,4)
参见[A]foreach(A => Unit):Unit
,foreach将函数从A转换为Unit并返回Unit。
您需要[A]map(A => B):Array[B]
。它从A到B接受一个函数并返回一个新的Array [B]。在这种特殊情况下,A和B相同,即Int。
这给了我索引,但是如果我使用z.toString,它是一个空字符串。
好吧,我想说{case (a,b)=> print(b) }
不会给您任何东西,它会打印b。但是b丢失了,它不能再被您的程序使用。这就是单位类型的意思。