У меня есть Action
def index(signupMessage:String="") = addToken {
silhouette.UserAwareAction { implicit request =>
println(s"index action called with request ${utilities.printPlayHttpRequest(request)}")
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:Option[String]*/messagesApi("app.title")(langs.availables(0))))
}
}
Обратите внимание, что signupMessage
имеет значение по умолчанию.
Я использую его в моем routes.conf
файле следующим образом
GET / controllers.HomeController.index(signupMessage="")
GET /home controllers.HomeController.index(signupMessage="")
GET /home:signup controllers.HomeController.index(signup)
Несмотря на то, что я указал значение по умолчанию для signupMessage
, я должен указать его значение при вызове index(signupMessage="")
, потому что если я только делаю index (), я получаю ошибку Using different overloaded methods is not allowed. If you are using a single method in combination with default parameters, make sure you declare them all explicitly.
Почему я не могу использовать значение аргумента по умолчанию?