나는 당신이 무엇을 요구하고 있는지 확실하지 않습니다. 물론 클래스 변수는 getter와 setter를 가질 수 있습니다 (그리고 여러분은 원하는대로 값을 저장할 수 있습니다). 이 스 니펫이 아무 것도 밝히는 데 도움이됩니까? 당신은 전체 메타 프로그래밍의 일에 경우
>> class TestClass
>> def self.var
>> @@var ||= nil
>> end
>> def self.var=(value)
>> @@var = value
>> end
>> end
=> nil
>>
?> TestClass::var
=> nil
>> TestClass::var = 5
=> 5
>> TestClass::var
=> 5
, 당신은 attr_accessor 방법과 유사한 class_attr_accessor 방법을 구현할 수 있습니다. 다음은 위의 코드와 동일합니다.
class Module
def class_attr_accessor(attribute_name)
class_eval <<-CODE
def self.#{attribute_name}
@@#{attribute_name} ||= nil
end
def self.#{attribute_name}=(value)
@@#{attribute_name} = value
end
CODE
end
end
class TestClass
class_attr_accessor :var
end
Ruby를 C에 포함시키는 것은 무엇을 의미합니까? Ruby에 익숙하지 않지만 문제를 명확히하면 도움을 줄 수 있습니다. –
Ruby-C-API를 사용하여 Ruby를 통합하고 스크립팅 언어로 사용합니다. 내 질문에 더 많은 루비 관련 C.;) – unexist