Crystal 프로그래밍 언어에서 인터페이스의 개념을 사용할 수 있습니까?Crystal in interfaces
모듈이란 무엇입니까?하지만 대부분 네임 스페이스 처리에 사용됩니다.
따라서 Golang 스타일의 인터페이스를 사용하는 것이 더 중요합니다.
Crystal 프로그래밍 언어에서 인터페이스의 개념을 사용할 수 있습니까?Crystal in interfaces
모듈이란 무엇입니까?하지만 대부분 네임 스페이스 처리에 사용됩니다.
따라서 Golang 스타일의 인터페이스를 사용하는 것이 더 중요합니다.
사용할 수 있습니다,하지만 그들은 또한 계층을 생성 (첫번째 장소에 대한 중첩 된 클래스를 사용하는 것이 아니다).
모듈은 다른 클래스 (또는 모듈)에서 구현을 공유 할 수있는 메소드를 그룹화하기 위해 믹스 인으로 사용됩니다. 모듈은 구현이 구체적 인 추상 메소드를 보유 할 수도 있습니다.
모듈이 명시 적으로 클래스에 포함되며 모듈 이름에서 유형을 제한하여 인터페이스로 작동 할 수 있습니다.
추상적 인 방법만을 가진 모듈을 만들면 순수한 인터페이스가 가능합니다.
당신은 모듈 네임 스페이스 계층 구조를 만드는 데 사용되는 abstract
abstract class Animal
abstract def talk
end
class Dog < Animal
def talk # You must implement talk
"Woof!"
end
end
class Person
getter pet
def initialize(@name : String, @pet : Animal)
end
end
john = Person.new "John", Dog.new
john.pet.talk # => "Woof!"
자세한 내용과 예는 다음을 참조하십시오. https://github.com/crystal-lang/crystal/issues/3489 –