首页 > 解决方案 > scala中方括号中的A的目的是什么

问题描述

我正在学习 Scala。下面的代码有 [A] 多次。请有人用外行的方式解释我。我无法理解(尝试谷歌并阅读 StackOverflow 和其他答案,但我不明白。下面的代码是从列表中找到第 k 个元素。

def findKth[A](k:Int, l:List[A]):A = k match {
    case 0 => l.head
    case k if k > 0 => findKth(k - 1, l.tail)
    case _ => throw new NoSuchElementException  
}

标签: scalarecursionbrackets

解决方案


def findKth[A](k:Int, l:List[A]):A = k match {
    case 0 => l.head
    case k if k > 0 => findKth(k - 1, l.tail)
    case _ => throw new NoSuchElementException  
}

[A]是 function 的类型参数findKth。现在类型参数是什么意思?类型参数告诉编译器方法findKth可以接受类型参数A。这是泛型类型,因为A可以是任何东西。例如A可以是Int, Double, another List-- 任何东西。

有关更多信息,我建议您通过以下链接:

https://docs.scala-lang.org/tour/polymorphic-methods.html

https://docs.scala-lang.org/tour/generic-classes.html


推荐阅读