LoginSignup
5
6

More than 5 years have passed since last update.

Rubyの小技 hash編

Last updated at Posted at 2016-02-15

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_keyeach_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

5
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6