Rubyのhashの知ってたら少し得するかも、な小技を紹介します。
1, ハッシュの生成
基本は、こう
h = {a: 10, b: 20}
こんなのもできる
Hash(a: 10, b: 20)
こんなのもある 配列受けとる
Hash[:a, 10, :b, 20]
2, each_key, each_value
ハッシュのkeyだけを取得するために、Hash#keys
valueだけを取得するために、Hash#values
があります。
こんなことを昔の僕はこんなことをよくやっていました。
# hashのkey, valueのみをそれぞれ取得してeachでループさせる
h = {a: 10, b: 20, c: 30}
h.keys.each do |key|
p key
end
#=> a
#=> b
#=> c
h.values.each do |value|
p value
end
#=> 10
#=> 20
#=> 30
しかし、これを一回でできるメソッドがありました。
それが、each_keyとeach_value
h = {a: 10, b: 20, c: 30}
h.each_key do |key|
p key
end
#=> a
#=> b
#=> c
h.each_value do |value|
p value
end
#=> 10
#=> 20
#=> 30
3, invert
利用シーンがなかなかなさそうなinvert
こんなことができる
h = {a: 10, b: 20}
p h.invert
#=> {10 => :a, 20 => :b}
keyとvalueを反対にして返す。
4, values_at
引数のキーの値をまとめて取り出す。
h = {a: 10, b: 20, c: 30}
one, two = hash.values_at(:a, :b)
p one, two
#=> 10
#=> 20
こちらもどんどん見付け次第更新していきますー
こんなのあるぜっていう情報も、どんどんよろしくお願いしますmm