У меня возникли трудности с поиском конкретных ответов на то, что я знаю, что-то тривиальное. Я хотел бы понять, как блоки работают в Scala. Я исхожу из java/ruby background, и кажется, что scala имеет совершенно другой способ использования блоков.Понимание блоков Scala
Следующий код от Play! Framework website. Я хотел бы понять, что Действие семантически. Это объект или функция, которая принимает блок, или, возможно, ни один.
object Application extends Controller {
def index = Action {
Ok(views.html.index("Your new application is ready."))
}
}
Если это функция, возможно, это синтаксический сахар для следующего (в этом случае, как же Scala проходит вокруг блоков за кадром):
def index = Action({
Ok(views.html.index("Your new application is ready."))
})
Или это какой-то SCALA синтаксис I» я не знаю.
Любые ссылки на исходный код Scala помогут мне понять, как это работает за кулисами.
Спасибо за ответ. Поэтому из того, что я собираю, это синтаксический сахар для Action.apply(). Удаление сахара, как бы выглядело все заявление? – b1nd
Утверждение, поскольку у вас есть это по существу «Action.apply (Ok.apply (views.html.index (« Ваше новое приложение готово. »)))'. Если вы посмотрите на определение 'apply()' в указанном мной URL-адресе, вы увидите стрелку до типа параметра. Это просто указывает на параметр «по имени», описанный выше. (Кроме того, это не совпадение, что синтаксис по-имени похож на синтаксис анонимной функции без аргументов) – yan
Ссылка на игру doc сломана, кстати. Иногда, SO parser испортил ссылки, содержащие знак доллара. –