kiedy mamdostępu do klasy Zmienne ciągłe
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Czy istnieje sposób, aby uzyskać dostęp Foo::CONSTANT_NAME
czy muszę dokonać metody klasy dostępu do wartości?
kiedy mamdostępu do klasy Zmienne ciągłe
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Czy istnieje sposób, aby uzyskać dostęp Foo::CONSTANT_NAME
czy muszę dokonać metody klasy dostępu do wartości?
Co pisał powinno działać idealnie:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
end
Foo::CONSTANT_NAME
# => ["a", "b", "c"]
Jeśli piszesz dodatkowego kodu w swojej klasie, który zawiera stały, można traktować go jak globalny.
class Foo
MY_CONSTANT = "hello"
def bar
MY_CONSTANT
end
end
Foo.new.bar #=> hello
Jeśli masz dostęp do stałej poza klasą, poprzedzić go z nazwą klasy, a następnie dwoma dwukropkami
Foo::MY_CONSTANT #=> hello
Czy istnieje sposób, aby uzyskać dostęp
Foo::CONSTANT_NAME
?
Tak, jest:
Foo::CONSTANT_NAME
Kiedy próbuję uzyskać do niego dostęp, mam poniżej ostrzeżenia. Ostrzeżenie: już zainicjowana stała TestData :: CONSTANT_VAR Ta zmienna nie została zainicjalizowana nigdzie indziej. Dlaczego mam to ostrzeżenie? –
Niektóre alternatywy:
class Foo
MY_CONSTANT = "hello"
end
Foo::MY_CONSTANT
# => "hello"
Foo.const_get :MY_CONSTANT
# => "hello"
x = Foo.new
x.class::MY_CONSTANT
# => "hello"
x.class.const_defined? :MY_CONSTANT
# => true
x.class.const_get :MY_CONSTANT
# => "hello"
Hmm, muszę być literówka gdy testowałem wcześniej. Ooops :) –
niiiceee man! Znowu ratujesz: D –
, żeby to naprawdę było stałe, nie zapomnij dodać kropki na koniec wartości! 'CONSTANT_NAME = [" a "," b "," c "]. Freeze' – mutexkid