Ruby on Railsでhashと繰り返し「each」を使う方法を現役エンジニアが解説【初心者向け】
初心者向けにRuby on Railsでhashと繰り返し「each」を使う方法について現役エンジニアが解説しています。eachは、hashの要素の数だけ処理を繰り返し実行するためのメソッドです。hashはキー名と値を持つ集合です。Ruby on Railsでhashに対してeachを使ってみましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Ruby on Railsでhashと繰り返し「each」を使う方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Ruby講座の内容をもとに紹介しています。
今回は、Rubyに関する内容だね!
どういう内容でしょうか?
Ruby on Railsでhashと繰り返し「each」を使う方法について詳しく説明していくね!
お願いします!
Ruby on Railsのeachとは?
eachは、hashの要素の数だけ処理を繰り返し実行するためのメソッドです。hashの全ての要素を取り出して同じ処理を実行したい時に使います。
hashとeachの違いとは
前述の通り、eachはメソッドです。hashはキーと値をペアで要素として持つ集合です。
eachはhash用に用意されたメソッドです。eachを使うと、hashから要素を順に取り出すことができます。取り出した要素に対して行いたい処理(ブロック)を記述することができます。eachは、hashの要素がなくなるまで繰り返されます。
eachは配列にも使えますが、ここではhashに使う方法をご紹介します。
eachを使う方法
eachは、以下のようにして使います。
対象のhash.each do |k, v| [行いたい処理(ブロック)] end
あるいは
対象のhash.each {|k, v| [行いたい処理(ブロック)]}
とします。書き方が違うだけで同じ処理となります。
実際に書いてみよう
fruits = { 'Apple' => 150, 'Banana' => 100, 'Orange' => 200, 'Peach' => 300 } fruits.each do |k, v| puts "#{k} : #{v}" end
このプログラムを実行すると、
Apple : 150 Banana : 100 Orange : 200 Peach : 300
が表示されます。hashの要素を順に取り出して、キーと値をそれぞれ表示しています。
hashの要素を配列として取り出す
eachの対象を変えるとhashの要素を配列として取り出すこともできます。
fruits = { 'Apple' => 150, 'Banana' => 100, 'Orange' => 200, 'Peach' => 300 } fruits.each do |a| puts "#{a}" end
このプログラムを実行すると、
["Apple", 150] ["Banana", 100] ["Orange", 200] ["Peach", 300]
が表示されます。hashの要素が順に、キーと値の配列として取り出されます。
each_pairメソッド
each_pairメソッドという名前のメソッドもあります。eachメソッドの別名です。同じことができます。
fruits.each_pair do |k, v| puts "#{k} : #{v}" end
まとめ
eachは、hashから順にキーと値のペアを取り出して処理をするときに使います。これを機にhashを効率よく処理していきましょう。
筆者プロフィール
伊藤広明(いとうひろあき)
1990年代からソフトウェア開発を仕事としてはじめ、2000年ごろからWEBエンジニアの仕事にも従事。 作れるもの:Webシステム、スマホアプリ |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、Ruby on Railsを使ったプログラミングを習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。