Khi tôi có những điều sau đây:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Có cách nào để truy cập với Foo::CONSTANT_NAME
hoặc tôi phải tạo một phương thức lớp để truy cập giá trị không?
Khi tôi có những điều sau đây:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Có cách nào để truy cập với Foo::CONSTANT_NAME
hoặc tôi phải tạo một phương thức lớp để truy cập giá trị không?
Câu trả lời:
Những gì bạn đã đăng nên hoạt động hoàn hảo:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
end
Foo::CONSTANT_NAME
# => ["a", "b", "c"]
CONSTANT_NAME = ["a", "b", "c"].freeze
::
và .
;)
Nếu bạn đang viết mã bổ sung trong lớp chứa hằng số, bạn có thể coi nó như một toàn cục.
class Foo
MY_CONSTANT = "hello"
def bar
MY_CONSTANT
end
end
Foo.new.bar #=> hello
Nếu bạn đang truy cập vào hằng số bên ngoài lớp, hãy thêm tiền tố vào tên lớp, theo sau là hai dấu hai chấm
Foo::MY_CONSTANT #=> hello
Có cách nào để truy cập
Foo::CONSTANT_NAME
?
Có, có:
Foo::CONSTANT_NAME