f
有类型Function2[Int, Int, Boolean]
. L
的类型是IndexedSeq[Tuple2[Int, Int]]
and so filter
需要类型的函数Function1[Tuple2[Int, Int], Boolean]
. Every FunctionN[A, B, .., R]
特质有方法tupled
,它返回一个类型的函数Function1[TupleN[A, B, ..], R]
。您可以在这里使用它来转换f
到预期的类型L.filter
.
println(L.filter(f.tupled))
> Vector((4,16), (5,25))
或者你可以重新定义f
成为一个Function1[Tuple2[Int, Int], Boolean]
如下,直接使用。
val f = (t: (Int, Int)) => t._1 > 3
println(L.filter(f))
> Vector((4,16), (5,25))