在Crystal编程语言中是否可以使用接口的概念?
最接近的是模块,但似乎它们主要用于命名空间处理?
因此,问题更多地涉及到Golang风格的接口。
在Crystal编程语言中是否可以使用接口的概念?
最接近的是模块,但似乎它们主要用于命名空间处理?
因此,问题更多地涉及到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://forum.crystal-lang.org/t/crystal-has-interfaces-in-java-sense/5105