Rubyには、eachメソッドという繰り返し処理を行うメソッドがあります。配列やハッシュやファイル読み込みに対して効果を発揮します。
1. eachの基本構文
eachメソッドの基本構文は以下のようになります。
オブジェクト.each { |変数|
処理
}
処理
}
オブジェクトの部分に配列やハッシュやファイルオブジェクトが対応します。
2. 配列でeachメソッドを使う
配列での使用例は以下のようになります。
names = ["Sato", "Tanaka", "Suzuki"]
names.each { |name|
print("#{name}\n")
}
names.each { |name|
print("#{name}\n")
}
結果は
Sato
Tanaka
Suzuki
Tanaka
Suzuki
と表示されます。
3. ハッシュでeachメソッドを使う
次はハッシュの例です。
fruits = {"Apple"=>100, "Banana"=>50, "Orange"=> 120}
fruits.each { |name, price|
print("#{name}:#{price}\n")
}
fruits.each { |name, price|
print("#{name}:#{price}\n")
}
結果は
Orange:120
Apple:100
Banana:50
Apple:100
Banana:50
と表示されます。
4. ファイル読み込みでeachメソッドを使う
ファイルを読み込んで1行ずつ処理する場合にもeachメソッドは便利です。
以下の内容のファイルを読み込んで表示します。ファイル名はtest.txtです。
aaa
bbb
ccc
bbb
ccc
使用例は以下のようになります。
f = File::open("test.txt", "r")
f.each { |line|
print("#{line}")
}
f.close()
f.each { |line|
print("#{line}")
}
f.close()
結果は
aaa
bbb
ccc
bbb
ccc
と表示されます。