3
이것은 이론적으로 엄격합니다.모듈의 instance_method를 호출 할 수 있습니까?
module BleeTest
def meth
puts 'foo'
end
end
이 코드는 오류없이 실행되지만 "meth"메서드를 호출 할 수 있습니까?
"meth"는 인스턴스화 할 수없는 모듈의 인스턴스 메소드입니다. 그렇다면이 통역사가 왜이 구성을 허용합니까?
'BleeTest'의 하위 클래스의 인스턴스에만 메서드를 바인딩 할 수 있습니다. 'm.bind (o) .call # => TypeError : 바인드 인자는 BleeTest'의 인스턴스 여야합니다. 이렇게하면 잘 작동합니다 :'o.extend (BleeTest); m.bind (o) .call # => foo' – horseyguy
감사합니다. 귀사가 읽고있는 일부 보석 소스 코드를 명확히하는 데 도움이됩니다. – user258980
@banister : 당신 말이 맞아요. 필자의 IRB 기록을 살펴보면 위의 코드를 테스트하는 동안 복사 및 붙여 넣기 오류가 발생했습니다. 어떻게 든 빗나간'include BleeTest '이 내 클립 보드에 저장되었습니다. 최상위 레벨의'include Foo'는'Foo'를'Object'에 섞어서 테스트 해 보았습니다. 이것은 보여줄 것입니다 : 항상 신선한 환경에서 시험하십시오! –