From: "小西 弘将" Date: 2006-07-07T14:47:03+09:00 Subject: [ruby-list:42551] Re: Array#default  小西 弘将です。 >欲しいなと思うときは、行や桁の個数をあらかじめ特定できないような二重配列 >の場合やデータが離散的で全てを初期化する必要がない場合、などです。 可変配列を考える場合でも、配列の拡張の時に初期値を与えることができますよ ね? 二重配列以上は、現在標準がないのですから、それをやるのは個々人の責任とい う気がします(二重配列のインプリメントの問題)。 初期化しない配列の中身を知ることにdefaultという関数を作るのと、初期化を 必ずするということのコストは、初期化を必ずした方がコストが同程度か安いと 思います。範囲外のアクセスは、例外発生だと思います。 逆に、default導入で、配列中にないオブジェクトが帰ってくようになると、そ れはそれで困ると思うのですが。 def Array.default #初期化されていない配列値にアクセスされたときに値を返す擬似コード [ 0 ] end a = Array.new(4) a[1] = [ 1 ] b = a[0] # 初期化されていないので、Array#defaultを呼び出す b[0] = 1 # a[0][0]に代入したつもりなのに??? 勘違いしていたらすみません。 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 株式会社レアックス コンサルタント事業部 小西 弘将 TEL 011-780-2481 FAX 011-780-2488 E-mail : konishi@raax.co.jp URL : http://www.raax.co.jp/ 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜