例如,这段代码编译并输出false
,因为 Scala 编译器将 s 隐式转换Int
为Double
s 而不是 create List[AnyVal]
,这对我来说看起来很奇怪,因为这会导致数据丢失(例如,浮点类型不精确;对可能具有危险隐式转换的其他类型做类似的事情)。为什么 Scala 的设计者选择这样做?(我使用的是 2.9 版)
object Main {
def main(args: Array[String]) {
val x = List(3, 2)
val y = List(3, 2.0)
println(x.head / 2 == y.head / 2)
}
}