【发布时间】:2011-08-23 01:39:22
【问题描述】:
是否可以在 Scala 中创建由值参数化的类型?我不想定义一个部分类型List[A] 并使用List[Int] 对其进行参数化,而是定义一个部分类型(在伪代码中)Element[Symbol] 并使用Element['td] 对其进行参数化。在本例中,该类型表示一个 XML 元素:Element['td] 通知 Scala 类型检查器我们有一个 <td> 元素,您可以想象可以有专门期望或返回 <td> 元素的 API。
(子类化,如class Td extends Element,不是一个非常令人满意的解决方案,因为它不会阻止可能由独立开发人员编写的两段代码为<td>声明不同的子类,然后将考虑由 Scala 类型检查器确定为不同的类型。)
【问题讨论】:
-
我认为这不可能。
-
可能使用了很多内部类和路径依赖类型?
标签: scala