do...endと{}について
JavaやC言語などは繰り返し処理の場合、for文を使うことが多いと思いますが、
Rubyの繰り返し処理は、eachメソッドを使うことが多いです。
do...endの場合
配列の要素を加算する処理
eachメソッドで配列の要素を順番に取り出す作業を行い、その要素の処理はdoからendまでのブロックに記述します。
do...end
numbers = [1, 2, 3, 4]
sum = 0
numbers.each do |n|
sum += n
end
sum #=> 10
上記の場合、配列の中から要素1,2,3,4を順番に取り出して、sum += nで各要素を加算する。
##{}の場合
do...end以外に{}でもブロックを作ること出来ます。
{}
numbers = [1, 2, 3, 4]
sum = 0
numbers.each do { |n| sum += n }
sum #=> 10
##まとめ
do...endと{}の使い分けは明確に決まっているわけではありません。
ただ、下記のように使い分けられるケースが多いです。
・改行を含む長いブロックを書く場合は、do...end
・1行でコンパクトに書きたいときは、{}
####参考文献
プロを目指す人のためのRuby入門・・・伊藤淳一[著]