반응형
클래스의 상수에 액세스
다음이 있을 때:
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
언급URL : https://stackoverflow.com/questions/6427548/accessing-a-classs-constants
반응형
'programing' 카테고리의 다른 글
| PHP를 사용하여 파일 강제 다운로드 (0) | 2023.07.23 |
|---|---|
| @NotNull 주석이 Spring 부팅 응용 프로그램에서 작동하지 않습니다. (0) | 2023.07.18 |
| 파이썬에서 명시적인 '셀프'를 피하는 방법은 무엇입니까? (0) | 2023.07.18 |
| swagger-ui.html 기본 경로 변경 방법 (0) | 2023.07.18 |
| PyCharm의 터미널 내에서 가상 환경을 활성화하려면 어떻게 해야 합니까? (0) | 2023.07.18 |