ブロック変数は、Rubyのプログラミングにおいて、ブロック内で使われる変数のことです。
ブロックは、do ... end または { ... } で囲まれたコードの塊で、イテレータメソッド(例えば each, map, select など)と共に使用されます。
ブロック変数は、これらのイテレータメソッドによって供給される値を受け取るために使用されます。
ブロック変数の特徴と動作
定義と範囲
ブロック変数は、ブロックの開始部分で | |(パイプライン)の間に定義されます。
この変数はブロック内部でのみ有効で、ブロックの外部からはアクセスできません。
値の受け取り
ブロック変数は、イテレータメソッドから値を受け取ります。例えば、each メソッドが配列の各要素を順にブロック変数に渡します。
使用例
例えば、[1, 2, 3].each do |number| の場合、number はブロック変数です。each メソッドは配列 [1, 2, 3] の各要素を順に number に渡し、その都度ブロック内のコードが実行されます。
# 配列の各要素を表示
[1, 2, 3].each do |number|
puts number
end
出力
1
2
3
複数のブロック変数
いくつかの場合(特にハッシュを処理する場合など)では、複数のブロック変数を使用することがあります。例えば、hash.each do |key, value| では、2つのブロック変数 key と value を使用しています。
# ハッシュの各キーと値を表示
{a: 1, b: 2}.each do |key, value|
puts "#{key}: #{value}"
end
出力
a: 1
b: 2
ブロック変数はRubyのブロックを使ったプログラミングにおいて非常に重要で、コードの柔軟性と表現力を高めるためのキー要素です。