この単純化された (そしてやや不自然な) 例は、私が探しているものにかなり近いものです。
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.
より良い方法はありますか?(常により良い方法があります。)