我有一个方法和一个同名的局部变量x
:
class A
def x; 5 end
end
x = 10
我想在不使用self.x
的情况下引用方法x
。例如,我想要:
A.new.instance_eval{x} # => 10
返回 5
。这可能吗?
最佳答案
是的,有几种方式:
A.new.instance_eval{x()} # => 5
A.new.instance_eval{send(:x)} # => 5
如果只允许x
,那是不可能的。局部变量具有词法范围,并且在有歧义的情况下优先于方法。
关于ruby - 如何使方法优先于局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36822999/