From: matz@... (Yukihiro Matsumoto) Date: 2002-06-07T14:45:22+09:00 Subject: [ruby-dev:17342] Re: blocks and local variables まつもと ゆきひろです In message "[ruby-dev:17341] Re: blocks and local variables" on 02/06/07, "K.Kosako" writes: |> |ふと思ったんですが、:= で代入すると(その変数がブロックの外で使われてい |> |ても)そのブロック内でローカルになるとか。 |代入による場合も静的に解決するのでしょうか。 |:=より前に普通の代入文や参照があったときにも、全部ローカル? この場合には(たぶん警告してから)再定義します。つまり、 |x = 10 # ローカル変数 |foo { | x = x # ローカル変数の代入 | x := x # ブロックローカル変数の宣言と代入 |} になります。:=の左辺のxだけが違う変数ということですね。