我很难理解Scala
,因此想重构一段代码,使其更加脱糖。但我无法这样做。
原始代码是
def index(signupMessage:String = "") = addToken { //addToken is of CSRFAddToken
silhouette.UserAwareAction { implicit request =>
println(s"index action called with request ${utilities.printPlayHttpRequest(request)}")
//TODOM - fix as signup value is coming up as ;signup=error or ;signup=success instead of just success or error
println(s"index page's argument "+signupMessage)
val Token(name, value) = CSRF.getToken.get
println(s"Token name ${name}, value ${value}")
Ok(views.html.index(signupMessage,messagesApi("app.title")(langs.availables(0))))
}
}
我想减少代码并使调用更明确。我在想以下几行
def index(signupMessage:String = "") = {
val block:Action[AnyContent] = (implicit request) =>{ //THE ERROR IS HERE - '=>' expected but ')' found
println(s"index action called with request ${utilities.printPlayHttpRequest(request)}")
//TODOM - fix as signup value is coming up as ;signup=error or ;signup=success instead of just success or error
println(s"index page's argument "+signupMessage)
val Token(name, value) = CSRF.getToken.get
println(s"Token name ${name}, value ${value}")
Ok(views.html.index(signupMessage,messagesApi("app.title")(langs.availables(0))))
}
val silhouttedCode = silhouette.UserAwareAction.apply(block)
addToken.apply(silhouettedCode)
}
上面的代码不能编译。我究竟做错了什么?
我想你需要像这样写你的Action
:
val block = Action { implicit request =>
// Rest of code here
}