专栏原创出处:github-源笔记文件 (opens new window)github-源码 (opens new window),欢迎 Star,转载请附上原文出处链接和本声明。

Scala 编程语言专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Scala 编程语言 (opens new window)

方法可以按类型和值进行参数化:

  • 如果手动指定了类型参数的类型,则值参数的类型也就确定了。

  • 没有指定类型参数的类型,则会根据传入的值参数的类型自动推断出类型参数的类型。

  • 类型参数放在 [] 中,而值参数放在 () 中。

def listOfDuplicates[A](x: A, length: Int): List[A] = {
  if (length < 1)
    Nil
  else
    x :: listOfDuplicates(x, length - 1)
}
// 第一次调用,显示的指定了类型参数为 Int,因此第一个值参数必须为 Int 类型。
println(listOfDuplicates[Int](3, 4))  // List(3, 3, 3, 3)
// 第二次调用没有显示的提供参数类型,编译器可以根据上下文进行推断。
// 由于传入的第一个参数是 String 类型的,因此编译器知道参数类型 A 必须为 String。
println(listOfDuplicates("La", 8))  // List(La, La, La, La, La, La, La, La)
最后修改时间: 1/7/2020, 4:30:22 PM