статические переменные в рубине

Я просто узнал о статических переменных в php. Есть ли что-нибудь как этот в рубине?

Например, если мы хотим создать a Student класс и для каждого student объект, который мы создаем, его идентификационный номер, должен быть увеличен автоматически.

Я думал, создавая переменную класса, как помехи сделают.

68
задан Andrew Grimm 18 February 2011 в 03:12
поделиться

1 ответ

Переменные класса являются общими для всех экземпляров (поэтому они называются переменными класса), поэтому они будут делать то, что вы хотите. Они также передаются по наследству, что иногда приводит к довольно запутанному поведению, но я не думаю, что здесь будет проблема. Вот пример класса, который использует переменную класса для подсчета количества созданных экземпляров:

class Foo
  @@foos = 0

  def initialize
    @@foos += 1
  end

  def self.number_of_foos
    @@foos
  end
end

Foo.new
Foo.new
Foo.number_of_foos #=> 2
107
ответ дан 24 November 2019 в 14:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: