다음이있을 때 :
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
액세스 Foo::CONSTANT_NAME
할 수있는 방법이 있습니까? 값에 액세스하기 위해 클래스 메소드를 만들어야합니까?
답변
게시 한 내용이 완벽하게 작동해야합니다.
class Foo
CONSTANT_NAME = ["a", "b", "c"]
end
Foo::CONSTANT_NAME
# => ["a", "b", "c"]
답변
상수를 포함하는 클래스 내에서 추가 코드를 작성하는 경우 전역 코드처럼 취급 할 수 있습니다.
class Foo
MY_CONSTANT = "hello"
def bar
MY_CONSTANT
end
end
Foo.new.bar #=> hello
클래스 외부의 상수에 액세스하는 경우 클래스 이름 앞에 두 개의 콜론이 붙습니다.
Foo::MY_CONSTANT #=> hello
답변
일부 대안 :
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"
답변
액세스 할 수있는 방법이
Foo::CONSTANT_NAME
있습니까?
예, 있습니다 :
Foo::CONSTANT_NAME
답변
