【发布时间】:2010-12-02 18:22:47
【问题描述】:
我正在创建一些参数化类 C[T],并且我想对类型 T 的特性提出一些要求,以便能够成为我的类的参数。如果我只想说 T 继承自特征或类(就像我们对 Ordering 所做的那样),那将很简单。但我也希望它实现一些功能。
例如,我已经看到许多预定义类型实现了 MinValue 和 MaxValue,我希望我的类型 T 也实现这些。我收到了一些建议来定义一个隐式函数。但是我不希望所有用户在已经实现时都必须为这些用户实现此功能。我也可以在我的代码中实现它们,但这似乎只是一个糟糕的快速修复。
例如,在定义堆时,我想允许用户构造一个空堆。在这些情况下,我想用类型 T 可能具有的最小值来初始化值。显然这段代码不起作用。
class Heap[T](val value:T,val heaps:List[Heap[T]]){
def this()=this(T.MinValue,List())
}
我也很想收到一些关于非常好的在线 Scala 2.8 参考的建议。
【问题讨论】:
-
您能否通过(伪)代码示例阐明您的目标?您尝试了什么,为什么没有成功?
-
查看 stackoverflow.com/questions/68074/good-way-to-learn-scala 获取大量 Scala 资源链接。
-
尝试阅读有关类型界限的信息。代码示例在那里:gist.github.com/257758/47f06f2f3ca47702b3a86c76a5479d096cb8c7ec
标签: scala requirements parameterization