2010-08-02 6 views
5

Mon googlefu suce et était incapable de trouver l'information là-dessus.Existe-t-il une variable d'instance constante dans Ruby?

Fondamentalement, je veux avoir une variable d'instance qui est visible uniquement dans la portée d'une classe/module, mais est également immuable. Je suis nouveau à Ruby et m'excuse si cette question n'a pas beaucoup de sens.

Répondre

3
class MyClass 
    def initialize 
    class << self 
     FOO=1 
    end 
    end 
    def foo 
    class << self 
     FOO 
    end 
    end 
end 

Naturellement, vous aurez envie d'utiliser la méthode foo la mesure du possible de lire la valeur.

Un simple équivalent serait

class MyClass 
    def initialize 
    def foo; 1; end 
    end 
end 
+1

Bien sûr, les constantes ne sont pas de toute façon constante dans Ruby. –

1

constantes Ruby ne sont pas très constante: ils ne sont pas immuables, et vous pouvez assigner une autre valeur pour eux et tout ce que vous obtenez est un avertissement. Voir la question Constant Assigment Bug in Ruby?

Questions connexes