Warum gibt die folgenden:Implizite Funktionen mit Symbol Argumente in Scala
class TestClass{
case class printClass(s: Symbol) {
def pr() = println(s);
}
implicit def implPrint(i: Symbol) = printClass(i)
}
object TestObject extends TestClass{
def main(args:Array[String]) = {
'x pr
}
}
während des folgenden nicht:
class TestClass{
implicit def implPrint(i: Symbol) = println(i)
}
object TestObject extends TestClass{
def main(args:Array[String]) = {
'x
()
}
}
Meines Wissen impliziter Funktionen werden automatisch durch den Compiler, wenn sie aufgerufen denkt, dass es eine gute Idee ist. Warum ruft der Compiler in beiden Fällen implPrint() nicht auf? Was übersehe ich hier?