即使在這個簡單的程式中,我也不斷得到同樣的結果:
var = "string"
def ex()
puts var
end
ex()
它給了我:#Context:0xf4b640 的未定義區域變數或方法“var”。
這里發生了什么???
uj5u.com熱心網友回復:
def在使用關鍵字定義的方法中無法訪問外部區域變數(因為def創建了全新的背景關系,與周圍的背景關系完全分離)。但是,您可以使用以下定義的方法訪問它define_method:
var = "string"
define_method :ex do
puts var
end
ex
但是請注意,您應該很少需要這個(它可以將您的編碼生活變成地獄)。只需使用 objects 和 instance_variables 代替。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/460550.html
標籤:红宝石
