Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala变异泛型类_Scala_Generics - Fatal编程技术网

Scala变异泛型类

Scala变异泛型类,scala,generics,Scala,Generics,我有以下增量方法的伪代码 def increment(A: member, B: amount): B = match B { case: Integer => // mutate and return amount+1 case: Float => // mutate and return amount + 1.0 } 我需要增加amount,类型为B的对象,并返回相同的值。这充满了问题。上述通过匹配类型来增加数量的逻辑可能不是正确的方法,但我不知道还有其他方法。即使这样

我有以下增量方法的伪代码

def increment(A: member, B: amount): B = match B {
  case: Integer => // mutate and return amount+1
  case: Float => // mutate and return amount + 1.0
}
我需要增加amount,类型为B的对象,并返回相同的值。这充满了问题。上述通过匹配类型来增加数量的逻辑可能不是正确的方法,但我不知道还有其他方法。即使这样做-我们如何变异一个泛型类型,比如B?我们需要像容器类这样的东西来完成这项工作吗?我对所有其他方法都一无所知

任何帮助都将不胜感激。

这可能有用:

def increment [T] (a: T, b: T) (implicit T: Manifest[T], numeric: Numeric[T]): T = 
   numeric.plus (a, b)

scala> increment (7, 4)
res180: Int = 11

scala> increment (7.0, 4.0)
res181: Double = 11.0

scala> increment (7, 4.0)
res182: Double = 11.0

scala> increment (7.0, 4)
res183: Double = 11.0

非常感谢你!但是,这可能不会在泛型类中运行,对吗?如果我有一个类[T],并尝试在这个方法中使用泛型T。我遇到了一些错误,比如“T没有可用的TypeTag”。我使用了TypeTag,因为Manifest已经被弃用了。好吧,我想你必须履行
numeric
的契约-你这样做并提供一个加号方法吗?