scala - 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
}
解决方案
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
-- 任何东西。
有关更多信息,我建议您通过以下链接:
推荐阅读
- mysql - 为什么选择 id 使用其他索引?
- reactjs - Keydown 事件与 React 中的 onClick 不一样
- python - 如何显示 HTML 但不显示字符串?
- javascript - 谷歌地图中的标记不绘制
- nosql - DynamoDB - 如何使用 updateItem 更新嵌套对象
- python - 如何访问我的 Lambda 函数中的 Slot 值以获取 alexa 技能?
- c++ - 为什么转换 std::packaged_task 的构造函数显式?
- scala - 无法运行独立的 scala 文件
- roc - 为什么交叉验证后 ROC_AUC 分数会下降?
- python - 关闭excel表格列Python win32上的过滤器