1
我想添加一個新的隱式類型對於已經具有隱式Fractional或Integral類型類型的每個類型T都可以分割。來自其他類型類的隱式def類型
我寫的代碼無法編譯:
object Divisible {
implicit def fractionalDivisible[T](implicit frac: Fractional[T]): Divisible[T] = new Divisible[T] {
override def div(x: T, y: T): T = frac.div(x, y)
}
implicit def fractionalDivisible[T](implicit integral: Integral[T]): Divisible[T] = new Divisible[T] {
override def div(x: T, y: T): T = integral.quot(x, y)
}
}
trait Divisible[T] {
def div(x: T, y: T): T
}
object Example extends App{
def foo[T](x: T, y: T)(implicit div: Divisible[T]) = div.div(x, y)
println(foo(1.0, 2.0))
}
我收到的錯誤是:
找不到參數格隱含的價值: core.common.Divisible [雙]
如果另一方面我將隱式def移動到App中,它會進行編譯。
如何幫助編譯器在Divisible的伴隨對象中查找隱式def?
編輯: 此問題有一個錯誤。
也許解釋*爲什麼*會產生差異。 –
我不知道:( –