当我尝试访问变量时,为什么我总是得到 undefined local variable or method "" for #<Context:0xf4b640>?
Why do i keep getting undefined local variable or method "" for #<Context:0xf4b640> when i try to access the variable?
即使在这个简单的程序中,我也一直得到同样的结果:
var = "string"
def ex()
puts var
end
ex()
它给了我:#Context:0xf4b640 的未定义局部变量或方法 `var'。
这里发生了什么???
在使用 def
关键字定义的方法中无法访问外部局部变量(因为 def
创建了全新的上下文,与周围的上下文完全分离)。但是,您可以在 define_method
:
定义的方法中访问它
var = "string"
define_method :ex do
puts var
end
ex
但是请注意,您应该很少需要它(它会使您的编码生活陷入地狱)。只需使用对象和 instance_variables 即可。
即使在这个简单的程序中,我也一直得到同样的结果:
var = "string"
def ex()
puts var
end
ex()
它给了我:#Context:0xf4b640 的未定义局部变量或方法 `var'。
这里发生了什么???
在使用 def
关键字定义的方法中无法访问外部局部变量(因为 def
创建了全新的上下文,与周围的上下文完全分离)。但是,您可以在 define_method
:
var = "string"
define_method :ex do
puts var
end
ex
但是请注意,您应该很少需要它(它会使您的编码生活陷入地狱)。只需使用对象和 instance_variables 即可。