Rubyのハッシュを学ぶ
ハッシュとは、複数のオブジェクトをまとめるための入れ物。
「キー(key)」と「値(value)」のセットで複数のデータを扱える。
code:hash.rb
{:a => 1, :b => 2} # キーはシンボル以外の文字列などでも良い
{a: 1, b: 2} # キーは必ずシンボル(コロンを後ろに書く)
manu:c = 3 # キーと値の組みを追加できる 記号 => は見た目がロケットぽいので、親しみをこめてハッシュロケットと呼ばれる。
ハッシュのキーと値にはどんな種類のオブジェクトでもOK。
キーの部分に書く:シンボル名は、シンボルオブジェクト(Symbolクラスのオブジェクト) 存在しないキーを指定して値を取得しようとすると、nilが返ってくる。default=メソッドでnilに変わる値を設定できる。
ハッシュ同士をまとめて新しいハッシュを取得するにはmergeメソッド
ハッシュからキーと値の組みを削除するにはdeleteメソッド
eachメソッドでハッシュの繰り返し処理を行うときは、キーと値の2つの変数を定義する。
{:a=>1, :b=>2}.each {|k, v| p [k, v]}
each_keyメソッドではキーのみ、each_valueメソッドでは値のみを扱う。
ハッシュが持つすべてのキーを要素とする配列を取得するにはkeysメソッド
同じキーを複数使った場合、最後に書いたキーの値が有効になる(後勝ち)
キーワード引数と一致するハッシュを、メソッドの引数として渡すことができる
code:sample.rb
def buy_burger(menu, drink:, potato:)
# 省略
end
params = { drink: true, potato: false }
buy_burger('fish', params)