Swiftで行こう!--Escape!
クロージャーです。
で使ったコードです。
func fetchArticle(completion: @escaping ([Article]) -> Void)
One way that a closure can escape is by being stored in a variable that is defined outside the function. As an example, many functions that start an asynchronous operation take a closure argument as a completion handler. The function returns after it starts the operation, but the closure isn’t called until the operation is completed—the closure needs to escape, to be called later. For example:
クロージャが脱出できる1つの方法は、関数の外側で定義される変数に格納されることです。例として、非同期の演算を開始する多くの関数は、クロージャ引数を完了ハンドラとして取ります。関数は、それが演算を開始した後に戻ります、しかしクロージャはその演算が完了されるまで呼び出されません—このクロージャは脱出する、後で呼び出される、必要があります。
ということで非同期処理の完了時に実行する処理を定義しています。通常はクロージャはその演算が完了されるまで呼び出されないため"@escaping"をつけることで関数の外側で宣言される配列に加えて保持することができるようになります。なかなか理解が難しいです。
この記事が気に入ったらサポートをしてみませんか?