我读到了在不同的值类类型之间进行的隐式转换。 “Scala编程”一书指出:
[...]类
scala.Int
的实例会在需要时自动扩展(通过隐式转换)到类scala.Long
的实例。(第11.1节 - 斯卡拉的层次结构)
在这种情况下,“必需”是什么意思?怎么能让这个“可见”?我假设:
scala> var i = Int.MaxValue
i: Int = 2147483647
如果我加1,我期待i: Long = 2147483648
。
scala> i = i + 1
i: Int = -2147483648
我没想到会看到溢出。
答案 0 :(得分:6)
“必需”表示一个方法,它将一个Long传递给Int和类似的东西。
Int.+
不需要Long。在大多数情况下,Ints的行为就像Java的原始整数类型。