Gente, sto imparando il rubino e recentemente mi sono trasferito da JAVA. In JAVA potrei rendere una variabile membro di una classe statica e quella variabile membro rimarrebbe la stessa attraverso le istanze della classe. Come ottengo lo stesso in ruby. Ho fatto qualcosa di simile nella mia classe ruby:Metodo di classe in Ruby (equivalente statico in JAVA)
class Baseclass
@@wordshash
end
Questo sembra servire allo scopo finora mentre sto testando questo, cioè @@ wordhash rimane la stessa istanze attraverso di BaseClass. La mia comprensione è corretta.
Inoltre, volevo avere un metodo membro nella classe equivalente a un metodo statico in JAVA (non è necessario avere un'istanza della classe per accedervi). Come posso fare questo? Per esempio io voglio avere un metodo nel BaseClass come getwordshash(), che restituisce @@ wordshash e l'utente di tale metodo non dovrebbe avere per fare un esempio di BaseClass() Quindi, qualcosa di simile:.
class Baseclass
@@wordshash
#static or class method
def getwordhash()
return @@wordshash
end
end
e poi posso utilizzarlo come
#without making an instance
@hash = Baseclass.getwordhash()
mi scuso se questa è una domanda molto ingenuo, io sono veramente nuovo al rubino, ma molto entusiasta di imparare.
In realtà, la convenzione di solito non ha il tipo. Sarebbe '@@ words' piuttosto che' @@ words_hash'. –