0

在下面的代码中,过滤器代码被提取到本地 val :

val filterFunc = (x:VO) => x.getVal().equalsIgnoreCase("45")

然后我可以将它传递给过滤器函数,如下所示:

.filter(filterFunc)

但是如果 .filter 函数在一个方法中并且过滤器是在方法之外定义的,我需要这样的东西:

    def myMethod(p: A => Boolean) = {

    .filter(p)

  }

p: A => Boolean是方法的方法签名的一部分.filter。上面的代码无法编译,因为类型 A 未设置。如何更新代码以使方法myMethod接受过滤器定义作为其参数之一,然后在.filter方法中运行此代码?

编辑 :

当我做出改变时:

def myMethod[A](p: A => Boolean) = {
.filter(p)
}

我在线收到错误.filter(p)

错误是:

type mismatch; found : A => Boolean required: VO => Boolean
4

2 回答 2

0

def myMethod[A](p: A => Boolean)

于 2013-04-30T19:18:30.610 回答
0

正如评论中已经说过的:如果您知道您正在运行过滤器的集合类型,为什么不将 p 类型定义为SomeKnownType => Boolean

于 2013-05-02T11:00:09.960 回答