From: nobu.nakada@... Date: 2002-06-07T14:52:37+09:00 Subject: [ruby-dev:17345] Re: blocks and local variables なかだです。 At Fri, 7 Jun 2002 14:45:22 +0900, Yukihiro Matsumoto wrote: > |> |ふと思ったんですが、:= で代入すると(その変数がブロックの外で使われてい > |> |ても)そのブロック内でローカルになるとか。 宣言がブロックの先頭でしかできないのなら、代入のほうがよさそう な気がします。 > |代入による場合も静的に解決するのでしょうか。 > |:=より前に普通の代入文や参照があったときにも、全部ローカル? > > この場合には(たぶん警告してから)再定義します。つまり、 > > |x = 10 # ローカル変数 > |foo { > | x = x # ローカル変数の代入 > | x := x # ブロックローカル変数の宣言と代入 > |} > > になります。:=の左辺のxだけが違う変数ということですね。 xは10でしょうか、それとも nil? あと、$x ::= 100みたいのは単にsyntax error? -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦