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。