2011-07-26 30 views
9

Tengo un módulo con una variable de clase en ellaacceder a las variables de clase de un módulo dentro de una clase en 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 

¿Es posible obtener @@variable dentro Hello sin utilizar get_variable método? Quiero decir algo como Abc.variable sería bueno. Sólo curioso.

+0

posible duplicado de [¿Cómo pueden las variables de clase attr_accessor productos de Ruby o variables de instancia de clase en lugar de las variables de instancia?] (Http://stackoverflow.com/questions/895747/how-can- rubys-attr-accessor-produce-class-variables-or-class-instance-variables) –

Respuesta

4

No se puede acceder directamente @@variable (es decir, Abc.variable) dentro del ámbito de la clase Hello en el módulo Abc. ¿Por qué? Porque, cuando el intérprete de Ruby ve algo como Abc.variable, pensaría variable como método de clase/módulo de Abc.

Es importante pensar el modo Ruby cuando se programa en Ruby.

+0

Nota aparte: si desea superar esos pensamientos en gran medida, he compartido mis conocimientos en el recientemente celebrado Ruby Conf India 2011. Por favor, siéntase libre de ver mi charla en http://kartzontech.blogspot.com/2011/06/ruby-conf-india-2011.html y dar sus calificaciones y comentarios. Lo que es más importante, lea la última de las diapositivas donde mencioné los recursos que ayudaron a dar forma a mi forma de pensar Ruby. – karthiks

-1

probar esto

Abc.class_variable_get(:variable) 
+0

Amplíe su código o complemento con una explicación o corre el riesgo de que los moderadores eliminen su respuesta. – sshashank124

Cuestiones relacionadas