ひわだです。

From: matz / netlab.co.jp (Yukihiro Matsumoto)
Subject: [ruby-dev:7707] Re: new syntax (Re: Re: Ruby 2.0 の話題解禁)
Date: Wed, 18 Aug 1999 01:34:23 +0900

> |でも, メソッドにパラメータが付くと, よく意味が...
> |
> |  obj.foo(...) = val
> |
> |これはどういう意味なんだろう? って気になりせん? この場合対応する変数
> |obj.foo(...)って存在しませんし... どういったときに使うといった用法的な意
> |味付けも結構曖昧になりそうだと思うのですが.... 
> 
> もともと obj.foo = val は「objのfooという属性をvalにする」と
> いう仮想的な意味なわけですから、obj.foo(a)=valは「objの
> foo(a)という属性をvalにする」という意味がとれる文脈でならば
> 問題ない使い方でしょうし(C++でリファレンスを返すようなコンテ
> キスト)、逆にそういう意味にとれない場合に使うのははっきり言っ
> て乱用でしょう。しかし、乱用される可能性があるからという理由
> では禁止する必要はないと思います。

一つでも納得の行く使用例が見つかれば決まりのような気がしますね…。

  widget.event_mask("Button-1") = true

とか、

  polyline.position(10) = [100,200]

とか、

  hiwada.schedule(tomorrow) = "go to the book store."

とか。

#「foo(a)という属性をvalにする」というなら、"obj.foo[a] = val" のほう
#が良さそうですが、互換性が…。
--
檜田和浩 <hiwada / kuee.kyoto-u.ac.jp>