青山です。

On Wed, 1 Sep 1999 18:57:43 +0900,
hisanori / sitc.toshiba.co.jp wrote:

> "name1"に関するデータがなかったら、cgi["name1"] には [nil] を入れてお
> く、ってのはどうかな… なんて考えてたりします。もちろんデータの名前の
> 一覧(["name1",...])は先に渡しておかなければなりませんが。

なるほど。良さそうですね。[nil] ではなく、[] ではどうでしょう。

$ ruby -e 'cgi = Hash.new([]);    p cgi["name1"][0]'
nil
$ ruby -e 'cgi = Hash.new([nil]); p cgi["name1"][0]'
nil
$ ruby -e 'cgi = Hash.new([]);    cgi["name1"].each{|i| p i }'
$ ruby -e 'cgi = Hash.new([nil]); cgi["name1"].each{|i| p i }'
nil

cgi["name1"][0] へのアクセスは同じですが、"name1" に関するデータが無かっ
た場合、each 内を実行しないので、便利かもしれません。

これで has_key? のチェックが不要になるかもしれませんね。


-- 
青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>