teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

補足

2020/12/09 14:23

投稿

otn
otn

スコア86349

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