[Swift]「クロージャー(closure)」の「@escaping」って何?

Swift
スポンサーリンク

引数の〇〇

@escapingは、クロージャーの引数の「属性」です

属性とは、引数に与える追加情報のようなものです。

Swiftのクロージャーは、関数や別のクロージャーの引数として扱うクロージャーに、いくつか属性が用意されています。

効果

プログラマー, プログラミング, コード, 仕事, コンピューター, インターネット, テクノロジー

@escapingは、引数としてのクロージャーが関数の外で保持される場合に付ける属性です。

例えば、引数のクロージャーを関数の処理で外部の変数に格納するような場合です。

Swiftでは、引数のクロージャーが外部の変数に格納されるということを、属性として付与しておく必要があります。

使い方

@escapingのような属性は、次のように指定します。

func 関数名 ( 引数名:@escaping クロージャーの型 ) {
//処理
}

「:」の後ろに記述します。

以下は、@escapingの例です。

 var user = [() -> String]()

func addUser (user : @escaping () -> String)  {
          user.append(user)
}

外部の変数Userに、関数の引数のクロージャーを格納しています。

こうした場面では、@escapingを付ける必要があります。

まとめ

@escapingは、クロージャーを引数として使うための「属性」。

クロージャーを外部の変数に格納するような場面で使います。

オススメの記事

コメント

タイトルとURLをコピーしました