任何Ruby大師都能解釋這個嗎?Ruby,類變量和繼承?超類@@ var被改變了?
class Bar
@@x = 10
def self.test
return @@x
end
end
class Foo < Bar
@@x = 20
end
puts Bar.test # 20 why not 10?
puts Foo.test # 20
當我從TextMate運行此。我預計
puts Bar.test returns 10
和
puts Foo.test returns 20
但由於某些原因(我很想知道)@@ X Foo中更新酒吧的井,這是超一流的。我錯過了什麼?
的http://stackoverflow.com/questions/3787154/why-class-variable-syntax-should-be-avoided-in-ruby/3787327#3787327 – 2012-08-10 21:18:08
重複我同意,雖然他們沒有解釋真正發生的事情。我們可以關閉它。 – Roger 2012-08-10 21:24:12