Programming

클래스 상수에 액세스

procodes 2020. 6. 29. 21:14
반응형

클래스 상수에 액세스


다음이있을 때 :

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

반응형