그것은 다음과 같이 작동 클래스에 모듈이 변수 인스턴스 @my_variable
에 대한 접근을 구성하는
module Attr
attr_accessor :my_variable
end
class MyClass
@my_variable = "hi"
def initialize
@my_variable = "ho"
end
end
당신에게 include
:
MyClass.include Attr
c = MyClass.new
c.my_variable #=> "ho"
c.my_variable = "huh?" #=> "huh?"
c.my_variable #=> "huh?"
당신 extend
에 대한 접근자를 구성하는 클래스의 모듈 클래스 인스턴스 변수 @my_variable
는 :
보시다시피
MyClass.extend Attr #=> MyClass
MyClass.my_variable #=> "hi"
MyClass.my_variable = "nuts" #=> "nuts"
MyClass.my_variable #=> "nuts"
c.my_variable #=> "huh?"
, @my_variable
변수 인스턴스는 @my_variable
변수 클래스 인스턴스 구별된다. 서로 다른 이름을 가진 것처럼 그들은 공존합니다. 더 일반적으로
, 당신은 클래스 정의 내에서 include
및 extend
를 볼 수 있지만, 효과는 내가 위에서 무엇을하는 것과 같습니다
class MyClass
include Attr
extend Attr
@my_variable = "hi"
def initialize
@my_variable = "ho"
end
end
ATTR 리더는 무엇입니까? Calss 란 무엇입니까? attr-writer는 무엇입니까? Objest는 무엇입니까? – sawa