引数の最後においたクロージャ式は特別な記法で記述できる。接尾クロージャ、後置クロージャ。
省略を一切しない一般的な記述方法
1 2 3 |
func someFunctionThatTakesAClosure(closure: () -> Void) { // function body goes here } |
Closureの引数リストと戻り値を省略した記述方法
1 2 3 |
someFunctionThatTakesAClosure(closure: { // closure's body goes here }) |
someFunctionThatTakesAClosureの引数をTrailing Closureに置き換えた記述方法
1 2 3 |
someFunctionThatTakesAClosure() { // trailing closure's body goes here } |
さらに空の括弧を省略した記述方法
1 2 3 |
someFunctionThatTakesAClosure { // trailing closure's body goes here } |
複数の引数があるときのTrailing Closureの記法
1 2 3 |
someFunctionThatTakesAClosure(1, 2) { // trailing closure's body goes here } |
最初の2つの引数は () の中に記述する。一方で 最後の"引数"であるClosureは () の外(後ろ)に記述することができる
Trailing Closureは複数並べることはできない(ただ一つだけ)。