我无法理解scala如何在scala中将Int转换为BigDecimal。
val a : BigDecimal = 1
上面的语句在理想情况下应该引发编译错误,但是可以正常编译。谁能解释一下这在Scala中如何发生?
答案 0 :(得分:4)
这个问题的答案在于BigDecimal对象,该对象具有将Int转换为BigDecimal的隐式方法。
从scala的源代码中
object BigDecimal extends scala.AnyRef with scala.Serializable {
// all other methods
implicit def int2bigDecimal(i : scala.Int) : scala.math.BigDecimal = { /* compiled code */ }
}
如果这能回答您的问题,请告诉我。