gpt4 book ai didi

scala - 在 Scala 中添加泛型类型参数

转载 作者:行者123 更新时间:2023-12-01 13:07:18 24 4
gpt4 key购买 nike

嗨,我是 Scala 的新手,并尝试使用泛型类型参数编写加法程序,如下所示

object GenericTest extends Application {
def func1[A](x:A,y:A) :A = x+y
println(func1(3,4))
}

但这不起作用。我犯了什么错误。

最佳答案

A在这种情况下可以是任何类型。 x + y意味着 x.+(y) ,只有在以下情况下才会编译 a) 类型 A有一个方法 + ,或 b) 类型 A可以通过方法隐式转换为类型 + .

型号scala.Numeric提供编写对数字系统进行抽象的代码的能力——它可以用 Double、Int 甚至您自己的奇异数字系统(例如复数)调用。

您可以向 Numeric[A] 类型的方法添加一个隐式参数。 .

object GenericTest extends Application {
def func1[A](x: A, y: A)(implicit n: Numeric[A]): A = x + y
}

在 Scala 2.8 中,这可以缩短:
object GenericTest extends Application {
def func1[A: Numeric](x: A, y: A): A = x + y
}

关于scala - 在 Scala 中添加泛型类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2096414/

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