1
在下面簡單的例子我沒有編譯錯誤:爲什麼隱式[ClassTag [T]]成功解析?
object App {
def main(args: Array[String]) = {
test[Int]()
}
def test[T <: Int : ClassTag]() = println(implicitly[ClassTag[T]])
}
程序打印Int
。但我不明白爲什麼可以找到類型ClassTag[T]
的對象用於調用implicitly[ClassTag[T]]
?我做的唯一的事情就是提供泛型類型的參數。 ClassTag[Int]
從哪裏來?
簡而言之,它是在ClassTag伴侶對象中定義的。您還可以查找基本類型的其他定義,例如布爾值或Char。 – hasumedic