Kiedy mam:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Czy istnieje sposób uzyskania dostępu za pomocą Foo::CONSTANT_NAME
lub czy muszę utworzyć metodę klasy, aby uzyskać dostęp do wartości?
Kiedy mam:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Czy istnieje sposób uzyskania dostępu za pomocą Foo::CONSTANT_NAME
lub czy muszę utworzyć metodę klasy, aby uzyskać dostęp do wartości?
Odpowiedzi:
To, co opublikowałeś, powinno działać idealnie:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
end
Foo::CONSTANT_NAME
# => ["a", "b", "c"]
CONSTANT_NAME = ["a", "b", "c"].freeze
::
i .
;)
Jeśli piszesz dodatkowy kod w swojej klasie, który zawiera stałą, możesz traktować go jak globalny.
class Foo
MY_CONSTANT = "hello"
def bar
MY_CONSTANT
end
end
Foo.new.bar #=> hello
Jeśli uzyskujesz dostęp do stałej poza klasą, poprzedz ją nazwą klasy, po której następują dwa dwukropki
Foo::MY_CONSTANT #=> hello
Czy jest sposób, aby uzyskać dostęp
Foo::CONSTANT_NAME
?
Tak jest:
Foo::CONSTANT_NAME