2019/09/13_eachってhashにも使えるんですね!(ruby)
今日知ったんですけど、eachメソッドって、hashに対しても使えるんですね!
基本の欠如がやばいっす…
例1
明日、燃えるゴミの日なんですよ。
だから、朝、早起きしなきゃなー、めんどくせっ!と思ってたもんで…
array = { garbage: "紙", type: "燃えるゴミ"} array.each do | key, value | puts "キーは#{key}で、値は#{value}です。" end # ↓出力結果 #キーはgarbageで、値は紙です。 #キーはtypeで、値は燃えるゴミです。
ポイント
- キーとバリューを取り出すので、eachのブロック引数が2つ
- なお、ブロック引数が1つの場合は、
garbage: 紙
といった具合に、キーと値の両方が返ってきます。
例2
ちなみに、キーだけまたは値だけ欲しい場合は、以下のように記載します。
array = { garbage: "紙", type: "燃えるゴミ"} array.each do | key, value | puts "値は#{type}です。" end # ↓出力結果 #値は紙です。 #値は燃えるゴミです。
といった風に、処理を書くところ(do~endの中
)に、扱いたい方のブロック引数のみ書けばOKです。
これ1つ覚えておけば、keysメソッドやvaluesメソッドのことをすっかり忘れてしまっても、なんとかなります!
参考文献
伊藤淳一『プロを目指す人のためのRuby入門』技術評論社,2017年,149ページ
あとがき
今日は、メソッドの気の利いた使い方思いつかなかったっす…
想像力も欠如ぎみですね…
以上