2017-07-14 13 views
3

私はいくつかのSwiftコード上つもりだと私は、この関数のシグネチャが発生しました:Swiftの式() - >()= {}の意味は何ですか?

func foo(withCompletion completion: @escaping() ->() = {}) { ... } 

私は一部() ->() = {}は何を意味するのかわかりませんか? デフォルト値の場合、どのように使用する必要がありますか?

コードはSwift 3

+1

voidを返す関数です。この場合の関数は '{}'が空です。デフォルトでは何もしません。 voidを返す限り、コールバック関数を追加できます。 –

+0

...引数をとりません。 –

+1

空のクロージャー実装ではなく、オプションでリファクタリングしてnilに設定する可能性があります。 – JAL

答えて

7

completion引数は() ->()のタイプを有しています。これは、パラメータを持たず、空の(void)戻り型を持つクロージャです。

= {}は、パラメータのデフォルト値です。必要がない場合は、実際にクロージャを渡す必要はありません。

ですから、これを呼び出すことができます(末尾のクロージャ構文を使用して)

foo(withCompletion: { 
    // your code here 
}) 

か:

foo() { 
    // your code here 
} 

または(あなたが完了クロージャを使用しない場合):

foo() 
関連する問題