而不是像这样对每个可能的数字子类别进行别名,
type ICoord = List[Int]
type LCoord = List[Long]
type FCoord = List[Float]
...
如何为任何数字类型定义别名,尝试过
import math.Numeric
type Coord[ T <: Numeric] = List[T] //error: trait Numeric takes type parameters
答案 0 :(得分:2)
这是不可能的。您需要一个上下文绑定[T: Numeric]
而不是一个子类型绑定<:
,但是类型同义词中不允许上下文边界,只能在类或方法声明中使用(这是有意义的,因为它们被转换为额外的构造函数/方法参数)。您必须以其他方式使隐式可用(哪一个取决于您想要做什么)。