記憶の外付けHDD

切実に頭にUSBのコネクターがほしいです。なるべくtype-cでお願いしたいです。(忘れないように、プログラミング学習で学んだことを投稿してます)

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ページ


あとがき

今日は、メソッドの気の利いた使い方思いつかなかったっす…
想像力も欠如ぎみですね…

以上