class Collie
def speak
puts dog_generic
end
end
class Greyhound
def speak
puts dog_generic
end
end
class Labrador
def speak
puts dog_generic
end
end
dog_generic = "Woof"
chep = Collie.new
wrex = Collie.new
speedy = Greyhound.new
faithful = Labrador.new
chep.speak #=> Woof
wrex.speak #=> Woof
speedy.speak #=> Woof
faithful.speak #=> Woof
我希望最后三种方法都返回“Woof”。但是,此代码将调用未定义变量 dog_generic错误。这似乎是因为即使是全局变量也对对象不可用。dog_generic
如果我要更改to的所有实例@@dog_generic
,它会起作用,但@@ variables
很少使用,仅基于此,我不禁认为我做错了。
如何在多个对象之间共享一个变量?
不,我不想将一串“Woof”作为参数传递给每个对象。