Ruby是否有一个与未定义的实例变量等效的method_missing?

mea*_*gar 11 ruby metaprogramming method-missing

当我调用一个不存在的方法时,method_missing会告诉我该方法的名称.当我尝试访问尚未设置的变量时,该值很简单nil.

我试图动态拦截对nil实例变量的访问,并根据被访问变量的名称返回一个值.最接近的等价物是PHP __get.Ruby中有没有相同的功能?

rif*_*aff 0

不存在instance_variable_missing(至少据我所知)但是为什么你要访问随机命名的实例变量呢?

如果您的线程通过方法调用对对象状态进行所有访问(无论如何您都应该这样做),那么您就不需要这个。

如果您正在寻找一种方法来定义神奇的东西而不搞乱方法查找,您可能需要使用const_missing.