5-5-1 その他にもたくさんある繰り返し処理の構文やメソッド
その他の繰り返し処理の構文・メソッド
これまでtimes
メソッド、each
メソッド、while文を確認しました。Rubyではこれら以外にもたくさんの繰り返し処理のための構文やメソッドがあります。
その他の主な繰り返し処理用構文とメソッドをまとめると以下の通りです。
構文・メソッド | 主な動作・用途 |
---|---|
until文 | while文と逆で条件式がfalse になるまで処理を繰り返す |
for文 | 繰り返す配列やハッシュを代入して繰り返し処理の中で利用する |
upto メソッド |
指定した数値の範囲で1ずつ数を増やしながら処理を繰り返す |
downto メソッド |
指定した数値の範囲で1ずつ数を減らしながら処理を繰り返す |
step メソッド |
指定した数値の範囲で指定した数値の数を増やしながら処理を繰り返す |
loop メソッド |
無限ループを実行する |
Enumerable
モジュールが提供する便利なメソッド
Rubyでは標準で組み込まれているメソッドが他にもたくさんあります。
配列やハッシュなどのオブジェクトには、Enumerable
モジュールによって便利なメソッドが提供されています。
モジュールとは、便利メソッドを詰め込んだプログラムのひとかたまりのことです(モジュールについての詳細は「9章 モジュールやライブラリを理解する」参照)。
Enumerable
モジュールのEnumerableとは、英語で「数え上げることができる」という意味で、配列やハッシュなどeach
メソッドが使えるオブジェクトにはあらかじめ組み込まれています。
Enumerable
モジュールが提供するメソッドは多く、詳細はRuby リファレンスマニュアルのEnumerableモジュールを確認してください。
本サイトでは、代表的なmap
メソッド、any?
メソッド、select
メソッドを紹介します。それぞれのメソッドの動作は以下の通りです。
メソッド | 動作 |
---|---|
map |
オブジェクトの各要素に処理を加えて新しい配列を返却する |
any? |
オブジェクトの各要素の評価結果に1つでもtrue が含まれていればtrue を返却する |
select |
オブジェクトの各要素から条件に一致するものを集めて新しい配列を返却する |
Enumerable
モジュール提供のメソッドはちょっと動作のイメージがわきづらいかもしれません。
しかし機能としては強力でいかにもRubyらしい記法とも言えます。次ページ「5-5-2 便利な繰り返し処理を実際に動かしてみよう」を参考に、実際に動かしてみてその便利さを感じてみてください。