gpt4 book ai didi

Scala 类型语法

转载 作者:行者123 更新时间:2023-12-04 17:52:17 25 4
gpt4 key购买 nike

我观察到,如果我想创建一个可以接受任何类型列表并返回 bool 值的通用函数,我可以使用以下语法来声明函数:

def someFunction[A](l:List[A]):Boolean

但是,我也可以使用这种语法实现等效的函数声明:
def someFunction(l:List[_]):Boolean

后一种语法对我来说很有意义。下划线表示任何类型的列表的通配符。但是前者令人困惑;如果有的话,这两种语法之间的语义区别是什么?注意:我注意到我可以使用 [B] 或 [c] 甚至 [%] 代替第一个语法示例中的“[A]”。

最佳答案

A是一个“类型参数”。就像一个值参数,比如你的 l传递的参数,它是“名称”或占位符,用于在不同时间可能不同的某种类型(即方法的不同调用)。

在您的示例中,A未使用所以,是的,使用 _更有意义且更清晰,但如果您要从列表中返回一个元素,则方法返回类型将为 A (或您想为该参数提供的任何名称)。使用 _作为返回类型没有任何意义。

关于Scala 类型语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38820570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com