From: Yasushi Shoji Date: 2000-12-17T04:15:15+09:00 Subject: [ruby-list:26569] Re: Hash.new 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 writes: > >文書的な問題なんじゃないでしょうか? referenceには > > > >> new([ifnone]) > >> 空の新しいハッシュを生成します.ifnoneはキーに対応する値が存在しない > >> 時のデフォルト値です. > > > >としかないし。無い物を参照してそれに代入するってのは変じゃないですか? > > 僕は用途が意味を決めるという立場なんですけど、[] による参照 > のデフォルトって代入と組になってると思いませんか? ん〜、そかな。たとえば new([error_val]) 空の新しいハッシュを生成します。error_valは参照時に使用したキーに対応 する値が存在しない時の戻り値です。 に、なってたらだれも errorの時の値に代入しようとは思わないんじゃないでしょ うか? あたかも、「参照に使用した keyに対応する valueが無いときは、defaultを使 用された keyの valueとして一緒に storeされます」みたく(想像できる様に)書 いてあり、今までその様に使われてきたから問題になっているわけで。 しかもそれを「参照されるだけで変更」と他のクラスなんかと合わない方向にもっ ていくのは、ちょっとな〜と思ったわけです。 もちろん、仕様を変更して使いやすくする事には異論はありません。 # defaultは、freezeした方が良いのでわ… -- yashi