[#30220] schedule for Ruby 1.8.6 — "Akinori MUSHA" <knu@...>

 ruby-core を読んでいない人もいると思うので、ここでもアナウンス

20 messages 2007/01/30

[ruby-dev:30189] Re: := operator

From: take_tk <ggb03124@...>
Date: 2007-01-25 14:30:52 UTC
List: ruby-dev #30189
たけ(tk)です
[ruby-dev:30188] Re: := operator にて
"Nobuyoshi Nakada" <nobu@ruby-lang.org> さん曰く:

> 記号が残っていないというのはおいておくとしても、ブロックがネストしたとき
> に破綻しそうな気がします。

そうですね。

:= オペレータを導入したときにも、ブロックがネストしたときにどうなるん
でしょうね?  問題なしか・・。というか、分かりやすくて面白い。
外側に副作用を及ぼしたくなければ := を使えばよい、ということですね。

a = 1
iter{
  a = 2
  a := 3
  a = 4
  iter{    # 一番外側の a にはアクセスできない。
    a = 5  # まん中の a ・・ その時点での外側の a (あれば)。
    a := 6 # ブロックローカルとして宣言すると
    a = 7  # その後はブロックローカル。
  }
  p a #=> 5
}
p a   #=> 2

Take_tk = KUMAGAI Hidetake
たけ(tk)=熊谷秀武


In This Thread