【发布时间】:2010-11-27 04:54:57
【问题描述】:
我正在观看 prag dave 的第一个 ruby 元编程截屏视频。在某些时候,他说当您向实例变量添加方法时,ruby 会引入“鬼类”。 i.
animal = "cat"
def animal.speak
puts "hola"
end
animal.speak # => hola
animal.class # => String
dog = "dog"
dog.speak # Undefined method `speak' for "dog":String
String.send :speak # NoMethodError: undefined method `speak' for String:Class
animal.send :speak # hola
speak 方法存储在哪里? 如果是不可见的代理类,我们如何访问该代理类?
【问题讨论】: