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?
编辑: 此问题有一个错误。
也许解释*为什么*会产生差异。 –
我不知道:( –