From: matz@... (Yukihiro Matsumoto) Date: 1998-11-20T11:38:47+09:00 Subject: [ruby-list:10983] Re: スコープの範囲 まつもと ゆきひろです In message "[ruby-list:10976] スコープの範囲" on 98/11/20, Koji Arai writes: |新井です。 | |スコープの範囲について質問です。 答えは Rubyのローカル変数の有効範囲は静的に決まります というものです.つまり質問にあったプログラムの場合, p "iterator" [1,2].each {|i| print defined?(v) ? v : "undefined\n" # 未定義 v = "defined\n" # 代入により有効になる } # スコープを抜けたので未定義 print defined?(v) ? v : "undefined\n" __END__ ということです.ちなみにvの値は毎回初期化されます.前回の値 は保存されません. |希望としては、いずれも直観の通りに動いて欲しいんですが… 気持ちは分からなくもないのですが,長い目で見るとスコープのよ うなものは静的に決定された方がプログラムが理解しやすいと考え ているので,この挙動が動的になることはないでしょう. |# 1.1c8は今のところ様子見なんです |# 流量の多いruby-listからパッチを集めるのは大変。 そうですね.ちなみに立石さんがパッチの一覧を作って下さってい ました.最近ちょっと止まっているようですが. http://kt-www.jaist.ac.jp:8000/~ttate/info/language/ruby/ いつもありがとうございます.> 立石さん まつもと ゆきひろ /:|)