专栏原创出处: github-源笔记文件 , github-源码 ,欢迎 Star,转载请附上原文出处链接和本声明。 Scala 编程语言专栏系列笔记,系统性学习可访问个人复盘笔记-技术博客 Scala 编程语言 方法可以按类型和值进行参数化: 如果手动指定了类型参数的类型,则值参数的类型也就确定了。 没有指定类型参数的类型,则会根据传入的值参数的类型自动推断出类型参数的类型。 类型参数放在 [] 中,而值参数放在 () 中。 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)