trait Eq[@specialized -X] {
def eq(x: X, y: X): Boolean
}
trait Keyed[@specialized(Int) X] {
def eqOnKey: Eq[X]
}
Run Code Online (Sandbox Code Playgroud)
该方法eqOnKey不专门用于生成的类Keyed$mcI$sp.
我如何专门化这个方法,即eqOnKey$mcI$sp在类中使返回类型的方法Keyed$mcI$sp成为Eq$mcI$sp?
我定义了两个类型类:
trait WeakOrder[-X] { self =>
def cmp(x: X, y: X): Int
def max[Y <: X](x: Y, y: Y): Y = if (cmp(x, y) >= 0) x else y
def min[Y <: X](x: Y, y: Y): Y = if (cmp(x, y) <= 0) x else y
}
trait Lattice[X] { self =>
def sup(x: X, y: X): X
def inf(x: X, y: X): X
}
Run Code Online (Sandbox Code Playgroud)
我想做以下事情:
trait TotalOrder[-X] extends Lattice[X] with WeakOrder[X] { self =>
def sup(x: X, y: X): …Run Code Online (Sandbox Code Playgroud)