Amigos, estoy aprendiendo ruby y recientemente me mudé de JAVA. En JAVA podría hacer que una variable miembro de una clase sea estática y esa variable miembro permanecería igual en todas las instancias de la clase. ¿Cómo logro lo mismo en ruby? Hice algo como esto en mi clase de rubí:Método de clase en Ruby (equivalente a static en JAVA)
class Baseclass
@@wordshash
end
Esto parece servir al propósito hasta ahora, mientras estoy probando esto, es decir @@ wordhash sigue siendo el mismo a través de las instancias de la clase base. Es mi entendimiento correcto
Además, quería tener un método miembro en la clase que sea equivalente a un método estático en JAVA (no necesito tener una instancia de la clase para acceder a esto). ¿Cómo puedo hacer esto? Por ejemplo, yo quiero tener un método en la clase base como getwordshash() que devuelve @@ wordshash y el usuario de ese método no debería tener que hacer una instancia de la clase base() Así que algo como esto:.
class Baseclass
@@wordshash
#static or class method
def getwordhash()
return @@wordshash
end
end
y luego puedo usarlo como
#without making an instance
@hash = Baseclass.getwordhash()
me disculpo si esto es una pregunta muy ingenua, soy realmente nuevo al rubí, pero muy contentos de aprender.
En realidad, la convención no suele tener el tipo. Sería '@@ words' en lugar de' @@ words_hash'. –