引数の〇〇
@escapingは、クロージャーの引数の「属性」です
属性とは、引数に与える追加情報のようなものです。
Swiftのクロージャーは、関数や別のクロージャーの引数として扱うクロージャーに、いくつか属性が用意されています。
効果

@escapingは、引数としてのクロージャーが関数の外で保持される場合に付ける属性です。
例えば、引数のクロージャーを関数の処理で外部の変数に格納するような場合です。
Swiftでは、引数のクロージャーが外部の変数に格納されるということを、属性として付与しておく必要があります。
使い方
@escapingのような属性は、次のように指定します。
func 関数名 ( 引数名:@escaping クロージャーの型 ) {
//処理
}
「:」の後ろに記述します。
例
以下は、@escapingの例です。
var user = [() -> String]()
func addUser (user : @escaping () -> String) {
user.append(user)
}
外部の変数Userに、関数の引数のクロージャーを格納しています。
こうした場面では、@escapingを付ける必要があります。
まとめ
@escapingは、クロージャーを引数として使うための「属性」。
クロージャーを外部の変数に格納するような場面で使います。
コメント