Programming

Ruby에서 모듈 변수 만들기

procodes 2020. 8. 11. 21:26
반응형

Ruby에서 모듈 변수 만들기


Ruby의 모듈에서 클래스 변수와 유사하게 작동하는 변수를 만드는 방법이 있습니까? 이것이 의미하는 바는 모듈의 인스턴스를 초기화하지 않고도 액세스 할 수 있지만 변경할 수 있다는 것입니다 (모듈의 상수와 달리).


Ruby는 기본적으로 모듈에서 클래스 변수를 지원하므로 일부 프록시 또는 의사 클래스 변수가 아닌 클래스 변수를 직접 사용할 수 있습니다.

module Site
  @@name = "StackOverflow"

  def self.setName(value)
    @@name = value
  end

  def self.name
    @@name
  end
end

Site.name            # => "StackOverflow"
Site.setName("Test")
Site.name            # => "Test"

인스턴스 내에서 호출 할 필요가없는 경우 모듈 본문 내에서 인스턴스 변수를 사용하면됩니다.

module SomeModule
  module_function
  def param; @param end
  def param= v; @param = v end
end

SomeModule.param
# => nil
SomeModule.param = 1
SomeModule.param
# => 1

그러면 인스턴스 변수 @param클래스 SomeModule의 인스턴스 인 module에 속합니다 Module.


모듈에서 클래스 인스턴스 변수를 설정할 수 있습니다.

module MyModule
   class << self; attr_accessor :var; end
end

MyModule.var = 'this is saved at @var'

MyModule.var    
=> "this is saved at @var"

모듈 정의 내에서 값을 초기화 할 수도 있습니다.

module MyModule
  class << self
    attr_accessor :my_variable
  end
  self.my_variable = 2 + 2
end

p MyModule.my_variable

참고 URL : https://stackoverflow.com/questions/5690458/create-module-variables-in-ruby

반응형