Что делает эта Scala конструкция? - PullRequest
0 голосов
/ 12 февраля 2020

Я использую Play! Framework с Java и хотел бы попробовать его с Scala. Я начал с Scala книги, но самый простой c Play! Образец меня полностью озадачил:

  def index(): Action[AnyContent] = Action { implicit request =>
    Ok(views.html.index())
  }

Что такое конструкция Scala - это игра! здесь? Я понимаю, что мы определяем функцию, которая возвращает Action с универсальным c параметром AnyContent. Но следующая часть меня озадачила. Что означает присвоение в этом контексте?

Если I go для определения Action [AnyContent], оно определяется как trait Action[A] extends EssentialAction { ... } Если I go для определения Action после равно, оно определяется как:

trait BaseController extends BaseControllerHelpers {
  /**
   * The default ActionBuilder. Used to construct an action, for example:
   *
   * {{{
   *   def foo(query: String) = Action {
   *     Ok
   *   }
   * }}}
   *
   * This is meant to be a replacement for the now-deprecated Action object, and can be used in the same way.
   */
  def Action: ActionBuilder[Request, AnyContent] = controllerComponents.actionBuilder
} 

Примечание: меня интересует используемая конструкция Scala Мне все равно, что играть! на самом деле здесь, что я вроде понимаю.

1 Ответ

2 голосов
/ 12 февраля 2020

Вы, по сути, звоните Action.apply(), который определен здесь в ActionBuilder. Первым и единственным параметром функции apply() является функция request => Ok(...).

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