我有一个CoordVector接受的类,我在别处定义的类Vector[ComplexNumber]在哪里ComplexNumber,并且我也将其覆盖为接受Vector[Double]。但我希望覆盖改为接受 Scala 中的任何数字类型。
这是我当前的代码
case class RealVector(vector: Vector[Double])
case class ComplexVector(vector: Vector[ComplexNumber])
import scala.language.implicitConversions
implicit def dv(vector: Vector[Double]) = RealVector(vector)
implicit def cv(vector: Vector[ComplexNumber]) = ComplexVector(vector)
object CoordVector {
def apply(components:RealVector):CoordVector = {
new CoordVector(components.vector.map(c => ComplexNumber(c, 0)))
}
}
case class CoordVector(val components:ComplexVector) {
...
}
不幸的是,我不能只替换Double为Numeric,但是有没有一种简单的方法可以做到这一点,而不必为每个数字类型创建一个新的implicit defand ?apply