gpt4 book ai didi

scala - 值 % 不是类型参数 T 的成员 (Scala)

转载 作者:行者123 更新时间:2023-12-02 08:08:00 24 4
gpt4 key购买 nike

这真的很愚蠢,但我尝试编写我的第一个 Scala 程序并发现:

def remainder[T](a:T, b:T):T = {
a%b
}

给我:

scala> :l d.scala
Loading d.scala...
<console>:8: error: value % is not a member of type parameter T
a%b
^

那么,我如何告诉 Scala T 是数字并定义数学运算?我不相信这么简单的事情需要了解 Scala 的所有黑暗角落。一定是简单的东西!好吧,我尝试了一些组合,例如“T:Numeric”,但没有用。

最佳答案

我不确定为什么 Numeric 不够严格。

def remainder[T](a:T, b:T)(implicit ev:Integral[T]):T =
ev.rem(a,b)

...可以加糖...

def remainder[T:Integral](a:T, b:T):T =
implicitly[Integral[T]].rem(a,b)

...或进一步美化...

import Integral.Implicits._

def remainder[T:Integral](a:T, b:T):T = a % b

关于scala - 值 % 不是类型参数 T 的成员 (Scala),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49697217/

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