私の理解では、ルビブロックにはブロックスコープがあり、ブロック内で作成されたすべての変数はブロック内にのみ存在します。
例:
food = ['toast', 'cheese', 'wine']
food.each { |food| puts food.capitalize}
puts food
出力:
"Toast"
"Cheese"
"Wine"
"Wine"
food
ブロック内 (各ブロック)の変数を使用する場合、私の理解では、ブロック スコープがあるということでした。これはブロック スコープ内にのみ存在し、外部変数には影響しませんfood
。
ただし、動作は異なりますfood
。この場合、指定された外部変数が変更されます。この理解は正しいですか、ruby にはブロック スコープがありますか?