Scala源代码定义了“def”和其他内置的ins

时间:2015-10-28 23:36:52

标签: scala

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

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

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

1 个答案:

答案 0 :(得分: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,请注意该页面有“来源:Option.scala”,其中“Option.scala”已超链接到the source code。< / p>

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

如果您想了解def,最好还是阅读Scala Language Specification;它技术性很强,但仍然比编译器的源代码更容易接近。

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