我正在研究如何解决this问题。但是,我想知道我是否可以开始学习function
如何工作,或者如何通过阅读scala的源代码将参数传递到本地范围。
我知道scala的源代码托管在Github中,我的问题是如何找到def
的定义。
或者更一般地说,如何找到某些内置函数的源代码,运算符?
答案 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。