我有一个增量方法的伪代码。
def increment(A: member, B: amount): B = match B {
case: Integer => // mutate and return amount+1
case: Float => // mutate and return amount + 1.0
}
我需要增加数量,B类型的对象并返回相同的数量。这充满了问题。通过匹配类型递增金额的上述逻辑可能不是正确的方法,但我不知道任何其他方法。即使做这样的事情 - 我们如何变异像B这样的泛型?我们需要像容器类这样的东西吗?我在所有其他方法上都画了一个空白。
非常感谢任何帮助。
答案 0 :(得分:1)
这可能有效:
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