November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Chcemy zdefiniować zmienną stanowiącą własność klasy, nie każdego jej obiektu z osobna, wspólną dla wszystkich jej obiektów.
Zmienną stanowiącą własność klasy (w odróżnieniu od zmiennej instancyjnej, stanowiącej własność konkretnego obiektu) definiuje się, poprzedzając jej nazwę parą znaków @@. W poniższym przykładzie definiowana jest jedna zmienna instancyjna i jedna zmienna klasowa:
class Warning
@@translations = { :pl => 'Świeżo malowane',
:en => 'Wet Paint' }
def initialize(language=:pl)
@language = language
end
def warn
@@translations[@language]
end
end
Warning.new.warn # => "Świeżo malowane"
Warning.new(:en).warn # => "Wet Paint"
Zmienne klasowe służą do przechowywania ...