2011-07-26 11 views
9

Mam moduł ze zmienną klasy w todostęp do zmiennych klasy moduł jest wewnątrz klasy w Ruby

module Abc 
    @@variable = "huhu" 

    def self.get_variable 
    @@variable 
    end 

    class Hello 
    def hola 
     puts Abc.get_variable 
    end 
    end 
end 

a = Abc::Hello.new 
a.hola 

Czy to możliwe, aby uzyskać @@variable wewnątrz Hello bez użycia get_variable metody? Mam na myśli coś takiego, jak Abc.variable byłoby miło. Po prostu ciekawy.

+0

możliwy duplikat [W jaki sposób zmienne klasy attr_accessor produce Ruby lub zmiennych instancji klasy zamiast zmiennych instancji?] (Http://stackoverflow.com/questions/895747/how-can- rubys-attr-accessor-produce-class-variables-or-class-instance-variables) –

Odpowiedz

4

Nie można uzyskać bezpośredniego dostępu do @@variable (tj. Abc.variable) w zakresie klasy Hello w module Abc. Czemu? Ponieważ, gdy interpreter Ruby widzi coś takiego, jak Abc.variable, byłoby pomyśleć variable jako metoda klasy/modułu Abc.

Ważne jest, aby myśleć w języku Ruby podczas programowania w Ruby.

+0

Poza uwagą: Jeśli chcesz w dużej mierze przejść przez takie myśli, podzieliłem się swoją wiedzą w niedawno przeprowadzonym Ruby Conf India 2011. Zachęcamy do obejrzenia mojego wykładu pod adresem http://kartzontech.blogspot.com/2011/06/ruby-conf-india-2011.html i podzielenia się z nami swoimi ocenami i opiniami. Co najważniejsze, przeczytaj ostatni slajd, na którym wspomniałem o zasobach, które pomogły ukształtować moje myślenie w sposób Rubinowy. – karthiks

-1

spróbować tej

Abc.class_variable_get(:variable) 
+0

Proszę uzupełnij swój kod lub uzupełnienie o wyjaśnienie lub ryzykujesz usunięcie swojej odpowiedzi przez moderatorów. – sshashank124

Powiązane problemy