Scala 中的泛型類指的也是一個有類型參數的類函數
class Singular[A](element: A) extends Traversable[A] { def foreach[B](f: A=> B) = f(element) } object scala { def main(args: Array[String]) = { val p = new Singular("Planes") p.foreach(println) //p foreach println // 等價寫法 } }
類名後跟的 [A] 就是類型參數,在 new 生成實例的時候,Singular 類會根據參數 "Planes" 自動推導出 A 的類型,即 String。scala
foreach 是一個函數泛型,它接受一個函數參數 f,f 的參數爲 A,函數體爲 B,當咱們傳入 println 時,自動推導出 B 的類型,即 println 的類型。code