多个包定义

时间:2010-08-22 10:14:39

标签: 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

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

2 个答案:

答案 0 :(得分:51)

这与

基本相同
package scala.util.parsing.combinator.syntactical

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

...

因此,通过以您编写的方式“堆叠”包,您可以获得范围内的超级包。另请参阅these answers

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

答案 1 :(得分:7)

Scala reference提及(第9章,第9.1节):

  

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

     

编译单元

package p1;
...
package pn;
stats
     

从一个或多个包子句开始,相当于由包装

组成的编译单元
package p1 { ...
  package pn {
   stats
  } ...
}

另请参阅嵌套包装上的Organizing Code in Files and Namespaces (来自Programming Scala: Scalability = Functional Programming + Objects By Dean Wampler, Alex Payne,第44页,第2章)