0
在ruby docs同名,有這樣的文字:紅寶石塊參數具有本地變量
塊參數實際上是局部變量。如果在塊執行時存在相同名稱的現有本地,則該變量將通過對該塊的調用進行修改。這可能會也可能不會是一件好事。
我寫了下面的代碼來測試這個:
x = 0
3.upto(6) {|x| puts x}
puts x
# output are:
# 3
# 4
# 5
# 6
# 0
變量x
不會改變。爲什麼?這是違反文檔。
它不會在'枚舉器'中的x是塊參數,它的作用域僅限於塊內部,因爲其他'x'範圍內的代碼是 – Viren