まつもと ゆきひろです

In message "[ruby-list:13975] Re: Message of Today in 1999/04/20."
    on 99/04/21, "NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp> writes:

|これが
|
|>    def foo
|>      var1 = nil
|       var2 = 0	# !!!追加!!!
|>      loop do
|>        var2 = 5
|>        ...
|>      end
|>      defined? var1      #=> true
|>      defined? var2      #=> false
|>      loop do
|>        var2 = 20
|>        ...
|>      end
|>    end
|
|だったりすると,全員同じスコープになるわけですもんね...

そうです.

|例えば今,この追加をしない状況で,
|var2が同じ意味を表わすようになったとすると,

その場合,ブロックはスコープを導入しないと思いますから,

|fooの最初のloopを実行してる時:
|  var2のスコープはloopブロック
|
|2つめのloopを実行してる時:
|  var2のスコープはメソッドfoo
|
|なんてことになるんでしょうか...

なんて問題は発生しないでしょう.スコープはいつもメソッドfoo
になるでしょう.というか,歴史的にはそうでした.

                                まつもと ゆきひろ /:|)