RubyのHash入門


RubyのHash(ハッシュ)型に関するTipsの紹介です。

🍄 ArrayからHashへの変換

いくつかの種類の配列からHashに変換するサンプルです。

KeyとValueが交互の配列

arr = [1, :dog, 2, :cat, 3, :geese]
Hash[*arr] #=> { 1 => :dog, 2 => :cat, 3 => :geese }

KeyとValueの配列が複数ある配列

arr = [][1, :dog], [2, :cat], [3, :geese]]
Hash[*arr.flatten] #=> { 1 => :dog, 2 => :cat, 3 => :geese }

キーとバリューがそれぞれ違う配列

keys = [1, 2, 3]
values = [:dog, :cat, :geese]
arr = [keys, values].transpose
Hash[*arr] #=> { 1 => :dog, 2 => :cat, 3 => :geese }

🐡 ネストした値を取得:dig

digはハッシュのネストした値を再帰的に取得するメソッドです。値がない場合にnilを返してくれるのが助かります。

h = { foo: {bar: {baz: 1}}}

h.dig(:foo, :bar, :baz) #=> 1
h.dig(:foo, :zot) #=> nil

🐞 安全ではないハッシュを返す:to_unsafe_h

to_unsafe_hメソッドは安全ではない、フィルタされていないハッシュを返します。

params = ActionController::Parameters.new({
name: "Senjougahara Hitagi",
oddity: "Heavy stone crab"
})
params.to_unsafe_h
# => {"name"=>"Senjougahara Hitagi", "oddity" => "Heavy stone crab"}

🗻 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍