почему я должен указать значение аргумента, даже если в функции указано значение аргумента по умолчанию - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть 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.

Почему я не могу использовать значение аргумента по умолчанию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...