Ketika saya memiliki yang berikut:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Apakah ada cara untuk mengakses Foo::CONSTANT_NAME
atau apakah saya harus membuat metode kelas untuk mengakses nilai?
Ketika saya memiliki yang berikut:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Apakah ada cara untuk mengakses Foo::CONSTANT_NAME
atau apakah saya harus membuat metode kelas untuk mengakses nilai?
Jawaban:
Apa yang Anda poskan harus bekerja dengan sempurna:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
end
Foo::CONSTANT_NAME
# => ["a", "b", "c"]
CONSTANT_NAME = ["a", "b", "c"].freeze
::
dan .
;)
Jika Anda menulis kode tambahan di dalam kelas Anda yang berisi konstanta, Anda bisa memperlakukannya seperti global.
class Foo
MY_CONSTANT = "hello"
def bar
MY_CONSTANT
end
end
Foo.new.bar #=> hello
Jika Anda mengakses konstanta di luar kelas, awali dengan nama kelas, diikuti oleh dua titik dua
Foo::MY_CONSTANT #=> hello
Apakah ada cara untuk mengakses
Foo::CONSTANT_NAME
?
Ya ada:
Foo::CONSTANT_NAME