配列やハッシュは、
for以外にも実はいろいろな形で利用する機能を備えています。配列やハッシュは、「
オブジェクト」と呼ばれる値であり、それらの中に用意されている「
メソッド」という機能を呼び出すことで、いろいろな処理が実行できるのです。
オブジェクトについてはいずれ改めて説明するとして、ここでは配列/ハッシュの要素を処理する「
each」というメソッドを紹介しておくことにしましょう。
配列 .each do | 変数 |
……実行する処理……
end
ハッシュ .each do | 変数1, 変数2 |
……実行する処理……
end
eachは、配列/ハッシュのオブジェクトの中にある機能です。これは、配列/ハッシュが保管されている変数名の後にドットを付け、続けて「
each」と記述します。その後に、
do | 変数 |と記述します。変数の前後にある
|は、必ず付けないといけません。
配列の場合、取り出された値が変数に設定されていきます。ハッシュの場合は、取り出した項目のキーと値がそれぞれ別々に変数に設定されます。
下に簡単な利用例を挙げておきましょう。配列arrから順に値を取り出して表示するだけの簡単なものですが、
eachの働きがよく分かるでしょう。
この
eachも
for構文も、基本的には「保管された要素を順番に取り出して変数に設定し、繰り返しを行う」という点に変わりはありません。まぁ、ビギナーのうちは、どちらか一方だけ知っていればOKと考えていいでしょう。