programing

클래스의 상수에 액세스

sourcejob 2023. 7. 18. 21:42
반응형

클래스의 상수에 액세스

다음이 있을 때:

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

반응형