回答編集履歴
1
補足
answer
CHANGED
@@ -5,6 +5,16 @@
|
|
5
5
|
`def enjoy`の中で定義しているつもりかも知れませんが、それはメソッドのローカル変数です。
|
6
6
|
メソッドの外とは関係ないです。
|
7
7
|
|
8
|
+
|
9
|
+
> 手続きオブジェクトとは
|
10
|
+
外側のローカル変数を参照できます。
|
11
|
+
|
12
|
+
なので、
|
13
|
+
> Proc.new { output << "Programming!"}.call
|
14
|
+
|
15
|
+
のブロック内の`output`はその外側(`def enjoy`の内側)の`output`と同じです。
|
16
|
+
|
17
|
+
|
8
18
|
意図通りのことをしたいのなら、`output`というローカル変数じゃなくてグローバル変数にすると出来ます。
|
9
19
|
```Ruby
|
10
20
|
def enjoy
|