RubyでHashの生成時に要素のデフォルト値を設定

| コメント(0) | トラックバック(0)

Rubyベストプラクティス -プロフェッショナルによるコードとテクニックを読んでいて発見がありました

ハッシュの各要素にはデフォルト値をあらかじめ指定しておけるのですね。

しかし、配列で初期化したい場合、先ほどのように単純にインスタンスを渡したら意図した結果になりません。

どんなキーの時でも生成時に渡した同じ配列のインスタンスが使われるためです。

これを避けるためにブロックを渡して再生成すればいいのかな?と思い、やってみたら毎回新しい配列が生成されてダメでした(笑)

このケースのための初期化方法もちゃんと用意されていて次のようにします。

ハッシュを使うときに要素がnilだったら[]を入れて...ってやっていたところをリファクタリングしなきゃ。

リファレンスマニュアルにもしっかり書かれています(笑)

http://doc.ruby-lang.org/ja/1.9.3/method/Hash/s/new.html



トラックバック(0)

トラックバックURL: http://www.iwazer.com/mt/mt-tb.cgi/1118

コメントする

このブログ記事について

このページは、iwazerが2012年11月11日 12:19に書いたブログ記事です。

ひとつ前のブログ記事は「ぴよ盛り 125個」です。

次のブログ記事は「新しいRubyMotion API Referenceと依存ファイルの自動解決(RubyMotion API Reference, Smart File Dependencies)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。