ハッシュ
ハッシュとは: キーと値の組み合わせでデータを管理するオブジェクトのこと
ハッシュを作成する場合は、以下のような構文を使います
{ キー1 => 値1, キー2 => 値2, キー3 => 値3 }
実際にハッシュを作成した例
{'food' => 'rice', 'fruit' => 'lemon'}
要素の追加
ハッシュを作成した後から、新しいキーと値を追加したい場合、以下のような構文を使います。
ハッシュ[キー] = 値
(例)以下は新たにドリンクの種類を追加するコードです。
menu = { 'food' => 'rice', 'fruit' => 'lemon', }
# ドリンクメニューを追加する
menu['drink'] = 'water'
puts menu #=> {"food" => "rice", "fruit" => "lemon", "drink" => "water"}
要素の上書き
既にキーが存在する場合、値が上書きされます。
menu = { 'food' => 'rice', 'fruit' => 'lemon', }
# 値を上書きする
menu['food'] = 'pizza'
puts menu #=> {"food" => "pizza", "fruit" => "lemon"}
ハッシュを使った繰り返し処理
eachメソッドを使用すると、キーと値のセットを順番に取り出すことができます。
menu = { 'food' => 'rice', 'fruit' => 'lemon', }
menu.each do |key, value|
puts "#{key} : #{value}"
end
# => food : rice
# fruit : lemon
ハッシュに each メソッドを使うときは変数に「キー」と「値」を指定します。
|変数|の変数はブロック引数といい、eachメソッドから渡されたハッシュの要素が入る。
ハッシュの「キー」が変数 key に、「値」が変数value に順番に代入されていきます。そして、ハッシュの要素の数だけブロック内で記述された処理が繰り返し実行された後、ブロックから抜け出し処理が終了します。