Я не думаю, что существует отличная разница между переменной класса и переменная экземпляра. Переменная класса также может рассматриваться как переменная экземпляра . Я прав?Разница между переменной класса Ruby и переменной экземпляра
Например:
class Test
@class_var = 'hello world'
def self.show_class_var
@class_var
end
def show_class_var
puts self.class.show_class_var
end
end
Итак, я полагаю, мы можем рассматривать переменную класса в качестве переменной экземпляра текущего класса (Test
). Если мы определим @@class_var = 'hello world'
, единственным преимуществом является то, что мы можем напрямую ссылаться на метод @@class_var
. Я просто хочу знать, прав ли я. Я?
То, что вы называете "переменная класса" не является переменной класса. Это переменная экземпляра объекта класса. Переменные реального класса добавляются с помощью '@@' –
возможного дубликата [переменной экземпляра, переменной класса и разностью между ними в ruby] (http://stackoverflow.com/questions/7329954/instance-variable-class-variable-and -the-difference-between-them-in-ruby) – quetzalcoatl
Спасибо, ребята, за ответ на мой вопрос :) Переменная класса можно увидеть в подклассе, в то время как переменная экземпляра не может. Я думаю, что это основное отличие. (я не ожидал ссоры по моему вопросу ... я не знаю, что произойдет.но я все равно благодарю вас за ваше терпение) – ruanhao