ハッシュの美学(2)
- 編集部の見解や意向と異なる内容の場合があります
- 編集部は内容について正確性を保証できません
- 画像が表示されない場合、編集部では対応できません
- 内容の追加・修正も編集部では対応できません
ヒューマンリソシア株式会社はコラム「ハッシュの美学(2)」を公開しました。
ハッシュを使ったプログラム例
今回のプログラムは多言語対応の例となります。ハッシュを入れ子にして、数字の1から5を英語と漢数字で表示するプログラムを作成しました。 英語の「one」にアクセスするには、ハッシュを入れ子にしてアクセスします。しかし、この方法では、いちいち「[]」を指定する必要があり少し面倒です。もっと、簡単にアクセスする方法はないかと検討したところ、ありました。やっぱり、Ruby便利ですね。
リスト1
# -*- coding:utf-8 -*-
require ‘pp’lang = {
en:{
number:{
one:”one”, two:”two”, three:”three”, four:”four”, five:”five”
}
}, ja:{
number:{
one:”一”, two:”二”, three:”三”, four:”四”, five:”五”
}
}
}pp lang[:en][:number][:one]
ハッシュを使ったプログラム例(改良)
リスト2が改良したプログラムです。いろいろなテクニックを駆使していますが、英語の「one」に アクセスするには、「[]」ではなく、「lang.en.number.one」のように「.」区切りでアクセス出来るようになりました。直感的にアクセ スできる方式を実現しました。利用しているテクニックは、構造体、map関数、再起呼び出しとなります。3行目から4行目にかけてがこのプログラムのポイ ントです。
この続きは以下をご覧ください
http://resocia.jp/column/348/
ソーシャルもやってます!