0
class SomeClass
end
some_local_var = 5
sc = SomeClass.new
def sc.should_work_closure
puts some_local_var # how can I access "some_local_var", # doesn't this work like a closure ?
end
sc.should_work_closure()
9號線:在should_work_closure': undefined local variable or method
some_local_var」爲#(NameError) 從t.rb:12紅寶石關閉問題(無法訪問VAR)
in 1.9.2你可以簡單地去:'sc.define_singleton_method(:should_work_closure){puts some_local_var} 1 – horseyguy 2010-10-24 12:20:31
看起來很可怕,但它肯定不是「通常從周圍訪問局部變量是個好主意範圍在方法定義中「。在函數式編程中這是一個超常見的事情。 – 2013-05-09 01:15:00
@JohnSalvatier你在比較蘋果和橘子。 Ruby沒有嵌套的方法定義,所以當我們談論「來自周邊範圍的局部變量」時,我們在全局範圍內討論局部變量。所以我們基本上是在討論mutable(因爲如果它們不是可變的,它們將被定義爲常量,可以從一個方法中訪問*)全局變量。這些在函數式編程中並不常見。 – sepp2k 2013-05-09 11:50:49