1 + 1 が意外に難しい
「Daimon.scala 第21回 (Scala School 斜め読み1)」 : ATNDでの一幕
1 + 1 = 2
ですね。
scala> 1 + 1 res0: Int = 2
ところで、Scala では演算子は実はメソッドです。
A method B は A.method(B) です。
なので
1 + 1 は 1.+(1)
と書けるはず。
scala> 1.+(1) res1: Double = 2.0
あれ、さっきと結果が違う...
理由
1.+(1)
が 「1 の + を呼ぶ」のではなく「1. の + を呼ぶ」と解釈されるみたい。
scala> 1. res2: Double = 1.0 scala> 1..+(1) res3: Double = 2.0 scala> (1).+(1) res4: Int = 2 scala> (1.)+(1) res5: Double = 2.0