我在理解以下几段 scala 代码背后的基本原理时遇到了一些麻烦:
我们都知道 REPL 中的 1 + 1 = 2。
scala> 1 + 1
res0: Int = 2
如果我输入“Abc”+“Def”,我应该在 REPL 中得到“AbcDef”。
scala> "Abc" + "Def"
res6: java.lang.String = AbcDef
现在假设我在 String "Abc" 上调用 + 方法并将 "Def" 作为参数传递:
scala> "Abc".+("Def")
res7: java.lang.String = AbcDef
同样的道理,为什么像 1.+(1) 这样的东西会返回一个双倍的 2.0?
scala> 1.+(1)
res1: Double = 2.0
另外,为什么将参数“1”作为参数传递会导致“1.01”如下:
scala> 1.+("1")
res9: String = 1.01
为什么返回的结果是一个字符串,而不是我努力将“1”转换为调用者类型?
谢谢