多个包定义

Mr_*_*Qqn 38 scala package

在浏览Scala API的源代码时,我在scala/tags/R_2_8_0_final/src/library/scala/util/parsing/combinator/syntactical/StdTokenParsers.scala中遇到了这个包定义:

package scala.util.parsing
package combinator
package syntactical
Run Code Online (Sandbox Code Playgroud)

那是什么意思?该课程将在多个套餐中提供?

Lan*_*dei 55

这基本上是一样的

package scala.util.parsing.combinator.syntactical

import scala.util.parsing._
import scala.util.parsing.combinator._

...
Run Code Online (Sandbox Code Playgroud)

因此,通过以您编写的方式"堆叠"包,您可以获得范围内的超级包.另见这些答案.

[更新]以下是Martin Odersky撰写的关于此主题的新文章:http://www.artima.com/scalazine/articles/chained_pa​​ckage_clauses_in_scala.html


Von*_*onC 7

所述的Scala参考提到(第9章,第9.1节):

编译单元由一系列包装,import子句以及类和对象定义组成,它们可以在package子句之后.

编译单元

package p1;
...
package pn;
stats
Run Code Online (Sandbox Code Playgroud)

从一个或多个包子句开始相当于由包装组成的编译单元

package p1 { ...
  package pn {
   stats
  } ...
}
Run Code Online (Sandbox Code Playgroud)

另请参阅在嵌套包上的文件和命名空间中组织代码.
(来自Scala编程:可伸缩性=功能编程+对象作者:Dean Wampler,Alex Payne,第44页,第2章)