我正在学习 Scala,并尝试在 Arrays
上练习一些示例。下面是示例:
scala>var arr = Array(Array(1,2,3), Array(4,5,6));
scala>arr.map(_.map(_ * 5))
res42: Array[Array[Int]] = Array(Array(5,10,15),Array(20,25,30))
当我尝试以同样的方式对上述数组执行 filter
方法时,它导致了一个错误
。下面是一段代码和产生的错误
。
scala>arr.filter(_.filter(_ < 5))
<console>:15: error: type mismatch;
found : Array[Int]
required: Boolean
o.filter(_.filter(_ < 5))
^
请说明为什么 filter
操作不起作用 在 Arrays 的数组上使用 filter
方法的正确方法是什么?
最佳答案
如果目标是得到Array(Array(1,2,3), Array(4))
,那么
arr.map(_.filter(_ < 5))
如果目标是得到Array(1,2,3,4)
,那么
arr.flatten.filter(_ < 5)
关于arrays - 在数组的数组上应用过滤器函数在 Scala 中返回异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52723031/