4
我想跳進Any的源代碼來查看一些方法是如何實現的,但是我發現它沒有包含在scala-library-src中,AnyRef也沒有(值類型和Nothing都沒有)。我很好奇,Scala對象基類型如何以及在哪裏實現?我在哪裏可以找到scala.Any和scala.AnyRef的定義?
我想跳進Any的源代碼來查看一些方法是如何實現的,但是我發現它沒有包含在scala-library-src中,AnyRef也沒有(值類型和Nothing都沒有)。我很好奇,Scala對象基類型如何以及在哪裏實現?我在哪裏可以找到scala.Any和scala.AnyRef的定義?
/src/library-aux/scala/Any.scala
和/src/library-aux/scala/AnyRef.scala
包含trait Any
和trait AnyRef
。
謝謝,https://github.com/scala/scala/blob/master/src/library-aux/scala/Any.scala和https://github.com/scala/scala/blob/master/src /library-aux/scala/AnyRef.scala有這些來源給我我需要的答案。任何想法庫aux是在標準分佈? – MilesHampson
正如library-aux的自述文件所指出的那樣,這些文件不是真正可編譯的(源文件主要在那裏,以便這些類型出現在scaladoc中)。運行時沒有像AnyRef或Any這樣的類。在jvm上,簡短的故事是'AnyRef'被映射到'java.lang.Object','AnyVal'沒有單個映射(映射到其中一個基本類型 - 例如'int') - 或者它的盒裝版本 - 例如'java.lang.Integer',具體取決於上下文。AnyRef' ='AnyVal' |'AnyRef',因此也沒有單一的直接映射。OVersimplified,但希望你能明白這一點。 –
已更新鏈接git - > https://github.com/scala/scala/tree/2.12.x/src/library-aux/scala – Toby