2
塊本地變量是爲了防止塊篡改範圍以外的變量。是否存在塊本地變量只是爲了增強可讀性?
使用塊局部變量
x = 10
3.times do |y; x|
x = y
end
x # => 10
但是這是很容易通過聲明一個普通塊參數的做法。爲該參數創建一個新的本地作用域,該作用域優先於先前的變量/作用域。
,不使用塊局部變量
x = 10
3.times do |y, x|
x = y
end
x # => 10
變量x
外塊不會在任何情況下得到改變。除了增強可讀性之外,是否還需要塊本地變量?