为什么下面的印刷符号参数隐函数:在斯卡拉
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
}
}
而下面没有:
class TestClass{
implicit def implPrint(i: Symbol) = println(i)
}
object TestObject extends TestClass{
def main(args:Array[String]) = {
'x
()
}
}
据我所知,隐函数由如果编译器自动调用认为这是一个好主意。为什么编译器在两种情况下都不调用implPrint()?我在这里忽略了什么?