爲什麼下面的印刷符號參數隱函數:在斯卡拉
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()?我在這裏忽略了什麼?