답변:
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"
defined?(@@foo) => "class variable"
입니다..
@
인스턴스 변수 에서 동일한 결과를 얻을 수 있음을 깨달았습니다 . 클래스 변수를 사용하는 특별한 이유가 있습니까? 답장을 보내 주셔서 감사합니다.
T.get
그리고 T::get
?
모듈에서 클래스 인스턴스 변수를 설정할 수 있습니다.
module MyModule
class << self; attr_accessor :var; end
end
MyModule.var = 'this is saved at @var'
MyModule.var
=> "this is saved at @var"