ちょっと説明が難しいので例を挙げると、
list = [1, 1, 2, 3, 5, 8] list.each do |n| puts n end
や
5.times to |n|
puts n
end
といったコードにおける|n|
の部分が何を表しているのか知りたい。
解決
|
で囲まれた変数のことをブロックパラメータと呼び、メソッドによって、何が格納されるかは異なる。
- eachメソッドでは配列の中身が順に格納される。つまり1つ目のコード例では、
list
の中身[1, 1, 2, 3, 5, 8]
が、順にブロックパラメータn
に格納されることになる。 - timesメソッドでは現在の繰り返し回数が格納される。C言語などでよく見る
for (int n = 0; n < 10; ++n)
の変数n
と同じようなものである。つまり2つ目のコード例では、ブロックパラメータn
に繰り返し回数0, 1, 2, 3, 4
が順に格納されることになる。