模块可以用作类型限制吗?

  • 本文关键字:类型 模块 crystal-lang
  • 更新时间 :
  • 英文 :


我正在尝试实现一个通用优先级队列容器类,其中要存储的元素必须具有排序属性。现在我有

class PriorityQueue(T)
...
end

当我创建PriorityQueue(Int32)PriorityQueue(String)PriorityQueue(Foo)时,这在我实现Fooinclude Comparable(Foo)时有效,但我想知道是否有办法让PriorityQueue类声明T必须Comparable

不,Crystal 目前(截至 0.31 年(不支持限制自由变量的类型。此功能正在讨论 https://github.com/crystal-lang/crystal/issues/934

与此同时,正如您所指出的,它仍然通过使用 Ruby 风格来期望通过调用您需要的方法来期望接口,只是由此产生的错误消息可能有点难以理解。

相关内容

  • 没有找到相关文章

最新更新