我正在尝试将一些 Java 数学类重写为 Scala,但遇到了一个奇怪的问题。
class Polynomials[@specialized T](val coefficients:List[T]) {
def +(operand:Polynomials[T]):Polynomials[T] = {
return new Polynomials[T](coefficients =
(operand.coefficients, this.coefficients).zipped.map(_ + _))
}
}
我的问题可能类似于这个问题:如何使一个类对所有数字类型都通用?,但是当我删除时,@specialized
我得到了同样的错误。
type mismatch; found : T required: String
map 函数中的第二个下划线突出显示了错误,但我认为这不是问题所在。
我想要做的是:
Polynomial(1, 2, 3) + Polynomial(2, 3, 4)
返回Polynomial(3, 5, 7)
并Polynomial(1, 2, 3, 5) + Polynomial(2, 3, 4)
返回Polynomial(3, 5, 7, 5)
对于第二个,我可能必须用零元素填充较短的列表才能使其正常工作,但这是我对这个函数的目标。
那么,我怎样才能让这个函数编译,以便我可以测试它呢?