2010-08-22 2 views
23

При просмотре исходного кода API Scala, я встретил это определение пакета в scala/tags/R_2_8_0_final/src/library/scala/util/parsing/combinator/syntactical/StdTokenParsers.scala:несколько пакетов определения

package scala.util.parsing 
package combinator 
package syntactical 

Что это значит? Что класс будет доступен в нескольких пакетах?

ответ

34

Это в основном так же, как

package scala.util.parsing.combinator.syntactical 

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

... 

Итак, «укладки» пакеты так, как вы написали, вы можете получить супер-пакеты в объеме. См. Также these answers.

[Update] Вот новая статья, написанная Одерски об этой теме: http://www.artima.com/scalazine/articles/chained_package_clauses_in_scala.html

6

The Scala reference упоминает (глава 9):

Модуль компиляции состоит из последовательности тары, импортных положений, а также класса и определений объектов, whichmay предшествовать пунктом пакета.
Компиляция блок

package p1; 
. . . 
package pn; 
stats 

начиная с одного или нескольких пакетов статей эквивалентна единице компиляции, состоящей упаковки

package p1 { . . . 
    package pn { 
    stats 
    } . . . 
} 

Смотрите также Organizing Code in Files and Namespaces на вложенных пакетов.

Смежные вопросы