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