추상 정적 메서드를 정의 할 수 있습니까?크리스탈 : 추상 정적 메서드
나는 시도하고있다 :
이abstract struct MyStruct
abstract def self.myfun # ERR
abstract def MyStruct::myfun # ERR
end
추상 정적 메서드를 정의 할 수 있습니까?크리스탈 : 추상 정적 메서드
나는 시도하고있다 :
이abstract struct MyStruct
abstract def self.myfun # ERR
abstract def MyStruct::myfun # ERR
end
추상 클래스 메소드는 언어 기능으로 표시되지 않습니다 :
abstract class Parent
def self.instance
@@instance ||= new
end
def self.doit
instance.doit
end
abstract def doit
end
class Child < Parent
def doit
"ok"
end
end
p Parent.doit # => can't instantiate abstract class Parent
p Child.doit # => "ok"
: 당신은 항상 인스턴스에 위임 할 수있다 그러나
abstract class Abstract
abstract self.doit
end
# => Syntax error in /home/bmiller/test.cr:23: unexpected token: self
나는 똑같은 문제에 직면하여 내 의견으로는 더 좋은 해결책을 찾았다.
abstract class Something
module ClassMethods
abstract def some_abstract_class_method
end
extend ClassMethods
abstract def some_abstract_instance_method
end
문서는 모듈 방법뿐만 아니라 추상적 인을 할 수 있음을 언급, 그래서 이것은 그 위에 구축합니다.
some_abstract_class_method
클래스 메서드를 구현하지 않고이 클래스를 구현하면 예상대로 오류가 발생합니다.
인스턴스 메서드와 싱글 톤은 해결 방법이지만 해결 방법이 될 수 있습니다. – Mat