scala源从Int到RichInt的隐式转换

时间:2011-10-06 01:54:38

标签: scala int implicit-conversion

我在Scala中理解Int被隐式转换为RichInt。在源代码中发生了什么(我正在浏览Scala源代码,但我找不到它......)

1 个答案:

答案 0 :(得分:10)

查看Predef.intWrapper(Int): RichInt

这是PredefLowPriorityImplicits继承的。继承的implicits优先级低于非继承的implicits。

请注意,通过浏览库源,您无法真正看到转换。在小片段中查看它的最佳方法是使用-Xprint:typer选项编译它(或在REPL中运行它)。这将显示由typer插入的转换,以便在类型不匹配时编译代码:

$ scala -Xprint:typer

scala> 3.abs
[[syntax trees at end of typer]]// Scala source: <console>
// stuff removed
        private[this] val res0: Int = scala.this.Predef.intWrapper(3).abs;
// more stuff removed
}