Lorsque j'ai ce qui suit:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Existe-t-il un moyen d'accéder avec Foo::CONSTANT_NAME
ou dois-je créer une méthode de classe pour accéder à la valeur?
Lorsque j'ai ce qui suit:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Existe-t-il un moyen d'accéder avec Foo::CONSTANT_NAME
ou dois-je créer une méthode de classe pour accéder à la valeur?
Réponses:
Ce que vous avez publié devrait fonctionner parfaitement:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
end
Foo::CONSTANT_NAME
# => ["a", "b", "c"]
CONSTANT_NAME = ["a", "b", "c"].freeze
::
et .
;)
Si vous écrivez du code supplémentaire dans votre classe qui contient la constante, vous pouvez le traiter comme un global.
class Foo
MY_CONSTANT = "hello"
def bar
MY_CONSTANT
end
end
Foo.new.bar #=> hello
Si vous accédez à la constante en dehors de la classe, préfixez-la avec le nom de la classe, suivi de deux deux points
Foo::MY_CONSTANT #=> hello
Y a-t-il un moyen d'y accéder
Foo::CONSTANT_NAME
?
Oui il y a:
Foo::CONSTANT_NAME