1
私は、継承された暗黙の低い優先順位のために、私が思うには曖昧なimplicitsを持つ次のScalaを持っています。しかしそれはしません - ambiguous implicit values
- エラーで失敗します。優先順位がここではうまくいかない理由を誰かに説明することはできますか?Scala:暗黙の解決、あいまいさ、逆転
trait Printer[-T] {
def prettify(instance:T): String
}
trait LowPriorityPrinter {
implicit val anyPrinter:Printer[Any] = new Printer[Any]{ def prettify(instance:Any) = instance.toString() }
}
object Printer extends LowPriorityPrinter {
implicit val intPrinter = new Printer[Int]{ def prettify(instance:Int) = instance.toString() }
}
object MyApp extends App {
def prettyprint[T](i:T)(implicit p:Printer[T]) = println(p.prettify(i))
prettyprint(234)
}
https://groups.google.com/forum/#!topic/scala-language/ZE83TvSWpT4 – cchantep