【问题标题】:Where can I find the definition of scala.Any and scala.AnyRef?我在哪里可以找到 scala.Any 和 scala.AnyRef 的定义?
【发布时间】:2023-03-17 01:55:02
【问题描述】:

我想跳入 Any 的源代码,看看一些方法是如何实现的,但我发现它不包含在 scala-library-src 中,AnyRef 也不包含(然而,值类型和 Nothing 是)。我很好奇,Scala 对象基类型是如何以及在哪里实现的?

【问题讨论】:

    标签: scala


    【解决方案1】:

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

    【讨论】:

    • 正如 library-aux 的自述文件所指出的那样,这些文件并不是真正可编译的(源文件大部分都在那里,因此这些类型出现在 scaladoc 中)。运行时没有 AnyRefAny 这样的类。在 jvm 上,简短的故事是 AnyRef 映射到 java.lang.ObjectAnyVal 没有单个映射(映射到原始类型之一 - 例如 int - 或其盒装版本 - 例如 @ 987654331@ 取决于上下文。AnyRef = AnyVal | AnyRef,因此也没有单一的直接映射。过度简化,但希望你明白。
    猜你喜欢
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 2010-11-13
    • 2017-07-04
    • 1970-01-01
    相关资源
    最近更新 更多