Ich habe Schwierigkeiten, spezifische Antworten zu finden, was ich weiß, ist etwas Triviales. Ich würde gerne verstehen, wie Blöcke in Scala funktionieren. Ich komme aus einem Java/Ruby-Hintergrund und es scheint, dass Scala eine völlig andere Art der Verwendung von Blöcken hat.Understanding Scala Blocks
Der folgende Code stammt von der Play! Framework website. Ich würde gerne wissen, was Aktion ist semantisch. Ist es ein Objekt oder eine Funktion, die einen Block akzeptiert, oder auch nicht?
object Application extends Controller {
def index = Action {
Ok(views.html.index("Your new application is ready."))
}
}
Wenn es eine Funktion ist, vielleicht ist es syntaktischer Zucker für die folgende (in diesem Fall, wie scala hinter den Kulissen um Blöcke übertragen wird):
def index = Action({
Ok(views.html.index("Your new application is ready."))
})
Oder ist es etwas scala Syntax I‘ mir nicht bewusst.
Jede Bezugnahme auf Scala Quellcode würde mir helfen zu verstehen, wie dies im Hintergrund funktioniert.
Danke für die Antwort. Also von dem, was ich sammle, ist dies syntaktischer Zucker für Action.apply(). Entfernen des Zuckers, wie würde die gesamte Aussage aussehen? – b1nd
Die Anweisung, wie Sie sie haben, ist im Wesentlichen 'Action.apply (Ok.apply (views.html.index) (" Ihre neue Anwendung ist fertig. "))). Wenn Sie sich die Definition von 'apply()' in der von mir angegebenen URL ansehen, bemerken Sie einen Pfeil vor dem Typ des Parameters. Das markiert ihn nur als "Name" -Parameter, wie oben beschrieben. (Es ist auch kein Zufall, dass die Syntax für den Namen wie die einer anonymen Funktion ohne Argumente aussieht) – yan
Link zum Abspielen doc ist übrigens kaputt. Gelegentlich vermasselt der SO-Parser Links, die ein Dollarzeichen enthalten. –