我有一个IsAuthenticated
具有复杂参数类型的方法(我从 play2 的 zentasks 示例中复制了它):
def IsAuthenticated(f: => String => Request[AnyContent] => Result): Action[(Action[AnyContent], AnyContent)] =
Security.Authenticated(username, onUnauthorized) { userId =>
Action { implicit request =>
val email = request.session("user.email")
f(email)(request)
}
}
为了使用它,我的操作是:
def delete(id:String) = IsAuthenticated { email => request =>
...
}
你可以看到email
如果我不需要使用它,我必须声明事件。我可以_
改用:
def delete(id:String) = IsAuthenticated { _ => _ =>
...
}
但是_ => _ =>
还是很无聊。
如何重构方法以使其使用更简单?例如,如果我不需要email
and request
,我可以:
def delete(id:String) = IsAuthenticated {
...
}
如果我只需要request
,我可以:
def delete(id:String) = IsAuthenticated { request =>
...
}
如果我需要email
,那么我将它们全部声明:
def delete(id:String) = IsAuthenticated { email => request =>
...
}