我在哪里可以找到scala.Any和scala.AnyRef的定义?

Mil*_*son 5 scala

我想跳转到Any的源代码,看看有些方法是如何实现的,但是我看到它没有包含在scala-library-src中,也没有AnyRef(值类型和Nothing都是).我很好奇,Scala对象基类型是如何实现的?

ste*_*tew 7

/src/library-aux/scala/Any.scala/src/library-aux/scala/AnyRef.scala包含trait Anytrait AnyRef.

  • 正如library-aux的自述文件所指出的那样,这些文件并不是真正可编译的(源文件主要是因为这些类型出现在scaladoc中).运行时没有"AnyRef"或"Any"这样的类.在JVM中,短的故事是,`AnyRef`映射到`java.lang.Object`,`AnyVal`没有单一的映射(映射成原始类型之一 - 诸如`int` - 或它的盒装版本 - 如`java.lang.Integer`根据上下文`AnyRef` =`AnyVal` |`AnyRef`,因此没有单一的直接映射,要么过于简单化,但希望你的想法. (3认同)