ブロックとイテレータ
Rubyにもfor, whileは実装されていますが、ほとんど使われません。代わりにRubyは「イテレータ(iterator)」を使って繰り返し処理を行います。
Arrayクラスのオブジェクトに対して.each
というメソッドをdo...end
付きで実行すると、配列の1個1個の要素に対してdo...end
の中身が順番に実行されます。|i|
の部分には、そのとき順番の回ってきた要素が入ります。
「do ... end
」あるいは「中括弧 {...}
」で囲まれた部分をブロック(block)と呼びます。中括弧を使う場合は改行せず1行に書くことが多いです。
ブロックの中に書いたコードは使いまわすことが出来ます。上の例で言うとputs 1 * 1
、puts 2 * 2
、といちいち書かずにputs i * i
を使いまわしています。
ブロックは、Rubyコードの「Rubyっぽさ」をかもし出す主要因であるように思えます。最初は繰り返し処理で使う程度ですが、慣れてくると別名のメソッドに分離するまでもない処理を共通化できるため、便利です。
簡単なRubyの紹介は以上です。最後に、Rubyを学ぶ人のために参考書籍とリンクをいくつか挙げておきます。
参考資料: 書籍】
入門書として気軽に読めます。プログラミング自体が初めての人はこの本から始めると良いと思います。
教科書的な本。既に他の言語でプログラミング経験があり、Rubyの仕様について知りたい人におすすめ。
参考資料: リンク
逆引きRuby 「こういうことがやりたいけどRubyではどう書くの?」という時に使えます。
Rubyist Magazine - るびまRuby界隈の空気を知っておくと勉強する上でもスムーズになるかもません。