这个简化的(并且有些人为的)示例与我正在寻找的非常接近。
implicit class PlusMinus(a: Double) {
def +-(b: Double) = if (a > b) a-b else a+b
}
有了这个,我可以:
scala> 3 +- 4L
res0: Double = 7.0
scala> 5f +- 1
res1: Double = 4.0
scala> 7L +- 6f
res3: Double = 1.0
但我不得不怀疑:
每个结果都是一个 Double。我可以模仿标准库中的自动数字转换吗?
Int +- Int = Int Long +- Long = Long Long +- Float = Float // etc.
有没有更好的办法?(总有更好的方法。)