Scala 入门-多态方法

泄露秘密 提交于 2020-01-23 08:45:47

专栏原创出处: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)
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!