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。
foreach 是一个函数泛型,它接受一个函数参数 f,f 的参数为 A,函数体为 B,当我们传入 println 时,自动推导出 B 的类型,即 println 的类型。