回答編集履歴

2

誤字を修正しました。

2020/09/17 06:53

投稿

TomohiroKumagai
TomohiroKumagai

スコア441

test CHANGED
@@ -76,7 +76,7 @@
76
76
 
77
77
  // たとえば、定義したクロージャーを戻り値として外側に返すと、
78
78
 
79
- // 通常であれば破棄されるはずの `number` も抱えたままが抱えたまま返す。
79
+ // 通常であれば破棄されるはずの `number` も抱えたまま返す。
80
80
 
81
81
  return closure
82
82
 

1

コードを実際に動かして遊ぶ例を追記しました。

2020/09/17 06:53

投稿

TomohiroKumagai
TomohiroKumagai

スコア441

test CHANGED
@@ -107,3 +107,27 @@
107
107
 
108
108
 
109
109
  なんにしても、先ほど挙げたコードの例と、挙げた2つの言葉「クロージングオーバー」と「キャプチャーリスト」について調べてみると、クロージャーに対する視野がまた広がってくるかもしれないです。
110
+
111
+
112
+
113
+ ###### 先ほどのコード例の遊び方
114
+
115
+
116
+
117
+ 先ほどのコードを記載した後、次のようなコードを書くと、実際に動かしてキャプチャーの挙動を試すことができます。戻り値で受け取ったクロージャーがキャプチャーしているはずの `number` の値の変化に注目してみてください。
118
+
119
+
120
+
121
+ ```swift
122
+
123
+ let serialNumberGenerator = makeSerialNumberGenerator()
124
+
125
+
126
+
127
+ serialNumberGenerator() // => 1
128
+
129
+ serialNumberGenerator() // => 2
130
+
131
+ serialNumberGenerator() // => 3
132
+
133
+ ```