Aşağıdakilere sahip olduğumda:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Erişmenin bir yolu var mı Foo::CONSTANT_NAME
veya değere erişmek için bir sınıf yöntemi yapmak zorunda mıyım?
Aşağıdakilere sahip olduğumda:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Erişmenin bir yolu var mı Foo::CONSTANT_NAME
veya değere erişmek için bir sınıf yöntemi yapmak zorunda mıyım?
Yanıtlar:
Gönderdikleriniz mükemmel bir şekilde çalışmalıdır:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
end
Foo::CONSTANT_NAME
# => ["a", "b", "c"]
CONSTANT_NAME = ["a", "b", "c"].freeze
::
ve .
;)
Sınıfınızda sabiti içeren ek kod yazıyorsanız, bunu global gibi değerlendirebilirsiniz.
class Foo
MY_CONSTANT = "hello"
def bar
MY_CONSTANT
end
end
Foo.new.bar #=> hello
Sabitin sınıfın dışına erişiyorsanız, bunu sınıf adının önüne ve ardından iki sütunun önüne ekleyin
Foo::MY_CONSTANT #=> hello
Erişmenin bir yolu var mı
Foo::CONSTANT_NAME
?
Evet var:
Foo::CONSTANT_NAME