At Sun, 17 Dec 2000 03:28:55 +0900,
GOTO Kentaro wrote:
> 
> In message "[ruby-list:26566] Re: Hash.new"
>     on 00/12/17, Yasushi Shoji <yashi / yashi.com> writes:
> >文書的な問題なんじゃないでしょうか? referenceには
> >
> >> new([ifnone])
> >>   空の新しいハッシュを生成します.ifnoneはキーに対応する値が存在しない
> >>   時のデフォルト値です.
> >
> >としかないし。無い物を参照してそれに代入するってのは変じゃないですか?
> 
> 僕は用途が意味を決めるという立場なんですけど、[] による参照
> のデフォルトって代入と組になってると思いませんか?

ん〜、そかな。たとえば

new([error_val])
  空の新しいハッシュを生成します。error_valは参照時に使用したキーに対応
  する値が存在しない時の戻り値です。

に、なってたらだれも errorの時の値に代入しようとは思わないんじゃないでしょ
うか?

あたかも、「参照に使用した keyに対応する valueが無いときは、defaultを使
用された keyの valueとして一緒に storeされます」みたく(想像できる様に)書
いてあり、今までその様に使われてきたから問題になっているわけで。

しかもそれを「参照されるだけで変更」と他のクラスなんかと合わない方向にもっ
ていくのは、ちょっとな〜と思ったわけです。

もちろん、仕様を変更して使いやすくする事には異論はありません。

# defaultは、freezeした方が良いのでわ…
--
         yashi