Mam trudności ze znalezieniem konkretnych odpowiedzi na to, co wiem, że jest czymś trywialnym. Chciałbym zrozumieć, jak bloki działają w Scali. Pochodzę z tła java/ruby i wydaje się, że scala ma zupełnie inny sposób użycia bloków. Ten kod jest z Play! Framework website. Chciałbym zrozumieć semantycznie, co to jest Action. Czy jest to obiekt lub funkcja, która akceptuje blok, a może nie.Opis bloków Scala
object Application extends Controller {
def index = Action {
Ok(views.html.index("Your new application is ready."))
}
}
Jeśli jest to funkcja, może to cukier syntaktyczny dla następujących elementów (w tym przypadku w jaki sposób scala przechodzić wokół bloków za kulisami):
def index = Action({
Ok(views.html.index("Your new application is ready."))
})
czy jest to jakiś scala składnię I” m nieświadomy.
Wszelkie odniesienia do kodu źródłowego Scala pomogą mi zrozumieć, jak działa to za kulisami.
Dzięki za odpowiedź. Z tego, co zbieram, jest to syntaktyczny cukier dla Action.apply(). Usunięcie cukru, jak wyglądałoby całe oświadczenie? – b1nd
Oświadczenie, jak to masz, jest zasadniczo "Action.apply (Ok.apply (views.html.index (" Twoja nowa aplikacja jest gotowa. ")))'. Jeśli spojrzysz na definicję 'apply()' w podanym adresie URL, zauważysz strzałkę przed typem parametru. Oznacza to po prostu parametr "nazwa-nazwisko", opisany powyżej. (Nie jest też przypadkiem, że składnia dla nazwy jest podobna do anonimowej funkcji bez argumentów) – yan
Link do gry doc jest zepsuty przy okazji. Od czasu do czasu parser SO zawiera łącza zawierające znak dolara. –