まつもと ゆきひろです.

In message "[ruby-list:1215] Re: Summary (Re: [Q] Scope of local variable)"
    on 96/12/09, sinara / blade.nagaokaut.ac.jp <sinara / blade.nagaokaut.ac.jp> writes:
|
|原です。

|FAQ 編纂でもしますかね。そういえば昔 FAQ があったとか。

それはゼヒゼヒおねがいしたいです.

昔FAQはあったのですが,松本に分からないことが無いので(想像力
もないらしい),つまらない質問ばかりで役に立たないので無くし
ました.実際に使っている人から出て来た質問なら役に立つと思い
ます.

# rubyの名前の由来というのは役に立っていたかも知れない….

|なるほどそうですか。しかし今まで何にも気にしないでスクリプトを
|書いていたのが恐ろしい。それで問題なかったんですが。^^;

普通に使っている場合にはまったく同じになるように設計したつも
りです.問題になるのは実行速度の違い(わずかですけど)とProc化
した時の扱いだけだと思います.

  proc{
   iii=5			# dynamic local variable
   $proc = proc{|i|
      iii = i
    }
    $proc2 = proc {
      $x = iii			# dynamic variables shared by procs
    }
    # scope of dynamic variables
    p (defined?(iii))
  }.call
  p(defined?(iii))		# out of scope

  $x=0                          # $xを初期化
  $proc.call(5)                 # 動的変数iiiに5を代入
  $proc2.call                   # $xにiiiの値を代入
  p $x                          # $x == 5

これでわかる?
                                まつもと ゆきひろ /:|)