2016-11-14 5 views
2

私はSwiftのWebフレームワークであるVaporで私の最初のステップをやっています。ブラケットを開いた後のパラメータ

私の注意と呼ばれるコードの最初の部分は、このでした:私はここの構文を理解していない

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

。つまり、私はapp.get()メソッドを呼び出していますが、requestがパラメータである場合は、何らかの関数を定義しています。私はこれが/welcome URLによってアクセス可能なgetメソッドをもたらし、 "Hello"を返すことを知っています。私にとって明らかでないことは、このコードがどのように動作し、どのようにコンパイラがそれを解釈するかです。

+0

ドゥCMD + .get' 'をクリックして、メソッドの宣言が表示されます、それは啓発になります。 :)キーワード:コールバック(補完ハンドラ)と後続のクロージャ。 – Moritz

+0

ああ。いいえ、Xcodeなので... Vim? ;)さて、メソッド宣言は表示されませんが、それらのキーワードを見ることはできます。 [this answer](http://stackoverflow.com/a/37343547/2227743)を見てください。これは、同様の後続のクロージャの例を示しています。 – Moritz

+0

ありがとう!私はそれが完了ハンドラであることを見た。それは単なるコールバックです。どうもありがとう! –

答えて

4

trailing closure syntaxと呼ばれています。

私はthis answerに閉鎖の様々な構文糖の良い概要を与えます。

このコードの拡張バージョンは、次のようになります。

app.get("welcome", { (request: Request) throws -> ResponseRepresentable in 
    return "Hello" 
}) 
関連する問題