2016-11-14 4 views
2

Ich mache meine ersten Schritte in Vapor, dem Web-Framework für Swift.Parameter nach dem Öffnen Klammer

Das erste Stück Code, das genannt wurde meine Aufmerksamkeit:

app.get("welcome") { request in 
    return "Hello" 
} 

ich die Syntax hier nicht verstehen. Ich meine, ich rufe app.get() Methode, aber ich definiere auch eine Art von Funktion, wo Anfrage ein Parameter ist. Ich weiß, dass dies zu einer get-Methode führt, die über eine /welcome-URL zugänglich ist, und gibt "Hello" zurück. Was für mich nicht klar ist, ist, wie dieses Stück Code funktioniert und wie der Compiler es interpretiert.

+0

Do CMD + Klick auf '.get' und Sie erhalten die Methodendeklaration sehen, wird es aufschlussreich sein. :) Schlüsselwörter: Callback (Completion Handler) und nachfolgende Closures. – Moritz

+0

Oh. Kein Xcode, also ... Vim? ;) Ok, Sie werden die Methodendeklaration nicht sehen, aber Sie können sich trotzdem diese Schlüsselwörter ansehen. Sehen Sie sich [diese Antwort] (http://stackoverflow.com/a/37343547/2227743) an, es zeigt ein ähnliches abschließendes Abschlussbeispiel. – Moritz

+0

Danke! Ich habe gesehen, dass es ein Completion-Handler ist. Es ist also nur ein Rückruf. Danke vielmals! –

Antwort

4

Dies wird trailing closure syntax genannt.

Ich gebe einen schönen Überblick über die verschiedenen syntaktischen Zucker der Verschlüsse in this answer.

Die erweiterte Version dieser Code wäre:

app.get("welcome", { (request: Request) throws -> ResponseRepresentable in 
    return "Hello" 
}) 
Verwandte Themen