Рассмотрим этот код:Переменные класса против переменных экземпляра уровня класса
class Polygon
@sides=1
@@sides = 10
class << self; attr_accessor :sides end
def self.sides
@@sides
end
end
Если я печатаю sides
:
p Polygon.sides
я 10
. Если я изменю порядок class
и self.sides
, я получу 1
. В чем причина такого поведения? Как я могу назвать @@sides
или @sides
независимо от порядка методов?
редактировать
Я нашел отличную post что обсудить разницу между класса переменных, переменных экземпляра класса и переменные экземпляра.