## なぜクロージャではselfを使うのか【Swift】
**self
をキャプチャすることを明示するため。**と書かれていたのですが、
参考サイト
以下コードの場合、下記の記述は正しいでしょうか?
関数scope_3へのキャプチャを明示する為、
self.scope_3
と記述する。
因みにself
は、Foo
クラスを指しています。
#### 質問
Foo
クラスを キャプチャしているのでしょうか?self.scope_3
(= 関数scope_3) をキャプチャしているのでしょうか?
関数scope_3の変数tete
への参照を保持しているので、後者の説明がしっくり来るのですが...????
参考サイトの考えによると、前者が正しいっぽいですが..
swift
1// scope_4関数は、scope_3関数から返されたクロージャを2回実行しています。 2class Foo { 3 func scope_3() -> () -> Void { 4 var tete = 10 5 let closure = { tete += 1 6 print(tete) 7 } 8 return closure 9 } 10 11 func scope_4() { 12 let tutu = self.scope_3() 13 tutu() 14 tutu() 15 } 16}
質問は以上です。
お時間あるときに、ご返信頂けましたら幸いです????

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/18 02:27
2020/09/18 03:54 編集
2020/09/18 04:06 編集
2020/09/18 04:20 編集
2020/09/18 04:27
2020/09/18 04:31 編集