1
define_method
另一個函數中定義的紅寶石的方法。示例代碼如下。
def demo(method_name)
variable = 5
define_method "#{method_name}" do
#stuff
end
end
裏面的新定義的方法,我希望能夠訪問該變量:以前定義
variable=5
。例如,我希望能夠做到:
define_method "#{method_name}" do
return variable*variable
end
並得到變量平方。
我希望能夠到:
demo("squared")
x = squared # => 25
有沒有一種方法,我可以通過變量「變量」到define_method即使它是不是在同一個範圍?
你差不多完成了。什麼是*阻止*你? –
嗯,我不確定,但是'do #stuff end'與'variable = 5'的範圍相同。即使我錯了,該塊可以訪問母親的範圍*。檢查這個:'a = 42; l = - > do; b = 22; l2 = - > do; 放一個; 結束; 結束; l.call.call;'*我不確定正確的標題,所以我彌補了這一點。 –
我很困惑。您顯示的代碼完全符合您的要求。那麼,你的問題是什麼? –