Scala 类扩展的参数中的函数定义?

Scala 类扩展的参数中的函数定义?,scala,inheritance,subclass,Scala,Inheritance,Subclass,在中,我发现了以下代码行: object Authenticated extends AuthenticatedBuilder(req => getUserFromRequest(req)) 让我困惑的是eq=>getUserFromRequestreq。为什么超类的参数中有函数定义?它不应该只保存子类应该继承的超类的参数吗 在Scala中,函数是一级元素,这意味着它们可以作为参数传递,也可以作为函数结果返回 从中我们可以看到AuthenticatedBuilder需要两个构造函数参数,

在中,我发现了以下代码行:

object Authenticated extends AuthenticatedBuilder(req => getUserFromRequest(req))

让我困惑的是eq=>getUserFromRequestreq。为什么超类的参数中有函数定义?它不应该只保存子类应该继承的超类的参数吗

在Scala中,函数是一级元素,这意味着它们可以作为参数传递,也可以作为函数结果返回

从中我们可以看到AuthenticatedBuilder需要两个构造函数参数,它们都是函数

class AuthenticatedBuilder[U](userinfo       : RequestHeader => Option[U]
                             ,onUnauthorized : RequestHeader => Result =
                   _ => Unauthorized(views.html.defaultpages.unauthorized())
                             ) extends ActionBuilder[...] { ...

在您引用的示例中,只提供了一个参数,因为第二个参数有一个默认值。

知道了。我错误地认为您不能给您从中继承的类提供任何具体参数,而只能提供参数。也就是说,我认为这是不合法的:类名:String,年龄:Int;物体Bobby延伸到人Bobby,12。