メソッド each & イテレータ

イテレータ (Iterator) とは、プログラミング言語において配列やそれに類似するデータ構造の各要素に対する繰返し処理の抽象化である。実際のプログラミング言語では、オブジェクトまたは文法などとして現れる。反復するためのものの意味で反復子(はんぷくし)と訳される。繰返子(くりかえし)という妙訳もある。
詳細:イテレータ-Wikipedia

accesaries = ['Pearl', 'Sapphire', 'Diamond']

accesaries.each do |acce|
  puts 'わたしは' + acce + 'が好きです!'
  puts 'あなたはいかが?'
end

  puts 'もっちろん Rubyが好きです'
  puts 'うふふふ'
moomin:programmingRuby tomomi$ ruby array.rb
わたしはPearlが好きです!
あなたはいかが?
わたしはSapphireが好きです!
あなたはいかが?
わたしはDiamondが好きです!
あなたはいかが?
もっちろん Rubyが好きです
うふふふ
  • 翻訳すると
    • 配列 accesariesの中にあるオブジェクト[Pearl, Sapphire, Diamond]それぞれ (.each)を,|acce|という変数に代入し、endまでの間に書いてあるプログラム内容をすべて実行(do)しなさい。そして、puts'もっちろん rubyが好きです'以下を実行する

上述の実行結果は下記コードで同様の結果が得られる。しかし『.each do |ごにょ|』を使うことで簡略化されたすっきりコードになることがわかりますね。.each doがループぽいふるまいをしていることが特徴。

accesaries = ['Pearl', 'Sapphire', 'Diamond']

  puts 'わたしは' + accesaries[0] + 'が好きです!'
  puts 'あなたはいかが?'
  puts 'わたしは' + accesaries[1] + 'が好きです!'
  puts 'あなたはいかが?'
  puts 'わたしは' + accesaries[2] + 'が好きです!'
  puts 'あなたはいかが?'
  
  puts 'もっちろん Rubyが好きです'
  puts 'うふふふ'