如何将特征的类型参数限制为一组不同的类型(例如,由联合类型绑定)?
作为一个具体的例子,我想IntegralIndex[T]
在T
mustInt
或Long
.
我尝试了关于联合类型的这个问题的第一个答案:
sealed abstract class NumericIndex[T]
object NumericIndex {
implicit object IntWitness extends NumericIndex[Int]
implicit object LongWitness extends NumericIndex[Long]
}
trait IntegralIndex[T : NumericIndex]
但这不起作用;我明白了traits cannot have type parameters with context bounds `: ...' nor view bounds `<% ...'
还有其他建议吗?诚然,我不理解关于联合类型的问题的其他解决方案,所以如果答案只是在那里使用不同的答案,或者甚至知道它无法完成,我将不胜感激。