【发布时间】:2011-12-10 05:20:27
【问题描述】:
如果你有类似的东西:
module Real
A = 1
end
当您执行defined?(Real::A) 时,您会得到“常量”,这是一个真实的值。现在,如果我这样做:
module Virtual
def self.constants
[:A] + super
end
def self.const_missing(sym)
return 1 if sym == :A
super
end
def self.const_defined?(sym)
return true if sym == :A
super
end
end
defined?(Virtual::A) 返回零。有没有办法覆盖定义的?考虑元编程常量的行为?
【问题讨论】:
标签: ruby metaprogramming constants