【问题标题】:Scala source code definition of "def" and other built ins“def”和其他内置函数的Scala源代码定义
【发布时间】:2015-10-28 23:36:51
【问题描述】:

我正在研究如何解决this 问题。但是,我想知道我是否可以开始学习 function 的工作原理,或者它们如何通过阅读 scala 的源代码将参数传递到本地范围。

我知道scala的源代码托管在Github,我的问题是如何定位def的定义。

或者更一般地说,如何定位某些内置函数、运算符的源代码?

【问题讨论】:

    标签: scala


    【解决方案1】:

    Scala 标准库中所有内容的源代码都在https://github.com/scala/scala/tree/2.11.x/src/library/scala 下。

    此外,标准库的 Scaladoc 包含指向源代码的链接。所以例如如果您对scala.Option 感兴趣并且正在查看http://www.scala-lang.org/api/2.11.7/#scala.Option,请注意该页面具有“Source:Option.scala”,其中“Option.scala”超链接到the source code

    对于像def 这样的东西,它不是标准库的一部分,而是语言的一部分,嗯……没有一个地方可以定义def 本身。编译器有 25 个阶段(您可以通过运行 scalac -Xshow-phases 列出它们),基本上每个阶段都参与了使 def 表达其含义的工作。

    如果您想了解def,最好阅读Scala Language Specification;它技术含量很高,但仍然比编译器的源代码更容易理解。

    解决您关于命名和默认参数问题的规范部分是SLS 6.6.1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-05
      • 2020-01-30
      • 2023-03-25
      • 2012-04-30
      • 2012-01-26
      • 2015-08-07
      相关资源
      最近更新 更多