gpt4 book ai didi

java - 如何使用 Numeric scala 类型?

转载 作者:行者123 更新时间:2023-12-05 07:55:00 25 4
gpt4 key购买 nike

<分区>

在 Java 中我可以使用 Number像那样

public void myFunction(Number number) {
double innerVar = 1.0; //initial value
if (number != null) {
innerVar += number.doubleValue();
}
//do other logic
}

如果我需要使用 Integer我可以替换 doubleValue代码 intValue .

但是 scala.math.Numeric 没有像 toDouble(x:T) 这样的方法我不知道什么是x:T这里的参数。另外,如果您看到 scala.Double或者 scala.Short他们有方法 toDouble但是这些方法并不是继承自一个特征。

我可以使用模式匹配,但是 toDouble 有很多代码重复:

val myNum:AnyVal = ...
var innerDouble = 1.0
myNum match {
case Double => innerDouble + myNum
case Short => innerDouble.toDouble + myNum
case Int => innerDouble.toDouble + myNum
}

或其他变体

val myNum:AnyVal = ...
var innerDouble = 1.0
myNum match {
case Double | Short | Int | Long => innerDouble.toDouble + myNum
case _ =>
}

那么在 Scala 中使用数字类型有什么更好的方法吗?

附言

我读到关于 Scala 中的 View 边界的信息,例如 <% double , 但不知道如何将它们用于模式匹配。

已更新

Here是类似的问题,但它是关于其中的类和参数的,我需要在模式匹配中使用的解决方案。

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