임의의 개체 형식에서 메서드를 호출하려고하는 유틸리티 라이브러리를 작성하려고합니다. 유형으로 우리가 알 수없는 그래서 Can't infer the type of instance variable 'object'
의 컴파일러 오류가 나는 크리스탈에서이 작업을 수행하는 방법을 잘 모르겠어요알 수없는 형식의 메서드 인수
def foo(object)
object.public_send(:bar)
rescue NoMethodError
raise "Method not defined on object"
end
foo(instance_of_my_arbitrary_class)
: 루비에서, 내가 좋아하는 일을 할 것입니다.
전달할 객체의 유형을 알지 못하면 어떻게해야합니까?
추상 수업을 만드시겠습니까? –
@ MarkThomas 어쩌면? 그냥 배우면서 추상 수업을 들여다 보겠습니다. –
이것은 Crystal의 [알려진 제한 사항] (https://github.com/crystal-lang/crystal/issues/2733)입니다. 아마도 [Generics] (https://crystal-lang.org/docs/syntax_and_semantics/generics.html) –