值类类型的隐式转换?

rdo*_*eui 3 scala scala-2.8

我读到了在不同的值类类型之间进行的隐式转换."Scala编程"一书指出:

[...]类scala.Int的实例scala.Long在需要时自动扩展(通过隐式转换)到类的实例.

(Ch.11.1 - Scala的层次结构)

在这种情况下,"必需"是什么意思?怎么能让这个"可见"?我以为:

scala> var i = Int.MaxValue
i: Int = 2147483647
Run Code Online (Sandbox Code Playgroud)

我期待i: Long = 2147483648如果加1.

scala> i = i + 1
i: Int = -2147483648
Run Code Online (Sandbox Code Playgroud)

我没想到会看到溢出.

Pet*_*r C 6

"必需"表示一个方法,它将一个Long传递给Int和类似的东西.

Int.+不需要长.在大多数情况下,Ints的行为与Java的原始整数类型相似.