参数语法糖我有操作有点语法糖,一个物体上取决于:有斯卡拉
case class EllipticOperand (p : Point)
{
def + (q : => Point) = curve.sum(p,q)
def * (n : => BigInt) = curve.times(p,n)
}
implicit def PointToOperand(p : Point) = EllipticOperand(p)
case class EllipticMultiplier (n : BigInt)
{
def * (p : => Point) = curve.times(p,n)
}
implicit def BigIntToOperand (n : BigInt) = EllipticMultiplier(n)
我想在一些class SyntacticSugar[Point](curve : main.Curve[Point])
封装在其他类定义来使用它,而无需拷贝/粘贴它。
我试图用这种方式:
val sugar = new util.SyntacticSugar(curve)
import sugar._
然而,这是不行的,以后我不能用+
和*
。
为什么不特质,你会混入其他班级? –
问题是,'特性'不支持参数,我的语法糖每次都取决于特定的曲线。 谢谢你的方式。 –
您定义了类'SyntacticSugar',像这样:'class SyntacticSugar [Point](curve:main.Curve [Point])'?所以上面de代码片段中的'Point'不是一个类,而是一个类型参数? –