コードの束
メソッドへの転送
構文
do...end
: 複数の行にわたるブロックを定義するときに主に使用{...}
: 一行で簡潔にblockを定義する時に主に使用do...end
より高い[1, 2, 3].each { |n| puts n * 10 }
block 変数
| |
# 一行のblock
[1, 2, 3].each { |number| puts number }
# 数行のblock
[1, 2, 3].each do |number|
puts number
puts number * 2
end
blockの戻り値
Array
[1, 2, 3, 4, 5].each do |number|
puts number
end
Hash
{a: 1, b: 2, c: 3}.each do |key, value|
puts "#{key} => #{value}"
end
Range
(1..5).each do |number|
puts number
end
each
の戻り値繰り返しを終えた後、原本collectionを返却
⇒ これはeachを使用した後も原本collectionに対する参照を維持しようとする時に有用
numbers = [1, 2, 3, 4, 5]
result = numbers.each do |number|
puts number
end
puts result == numbers # => true