Hash 対の value では初期値を設定することができる。 初期値には存在しない key が呼び出されたとき、 その代替となるものを入れておくとよい。 ルビ緒は、入力した品物が Hash 対の key でないとき、 取り扱っていない商品であることを知らせるようにした。
hash 名 = Hash(初期値) 存在しない key が呼び出さ れたときに初期値を代入
Hash 対が登録されていないときにこの初期値が呼び出される。
#p shop
STDERR.print("購入する品物:\n")
item = gets.chomp
#p shop.key?(item)
if shop.key?(item) == false
printf("%sは%sです\n",item, shop[item])
else
STDERR.print("購入する重量:\n")
weight = gets.chomp.to_f
printf("%s(%5.0f グラム)\t%5.0f円\n",
item, weight, shop[item] * weight / 100)
end
出来上がったら、実行して調べよう。
購入する品物:
にんじん
にんじんは非取扱商品です
初期値を設定しなくてもよい。 この場合、key が存在しないときには nil が返る。 nil とは、空っぽの、無効の、という意味である。