読者です 読者をやめる 読者になる 読者になる

Scalaのパッケージ宣言


フラットなパッケージ宣言

パッケージ宣言はJavaと同様にpackage節によって行う。

package etc9.util
class FileUtil

この例では、FileUtil クラスは etc9.util パッケージに所属することになる。

入れ子のパッケージ宣言

パッケージ宣言は以下のように、同じファイル内で入れ子に宣言することもできる。

package etc9 {
  package util {
    class FileUtil
  }
}

testパッケージなど、以下のように同じファイル内に記述できる。

package etc9.util {
  class FileUtil
  package test {
    class FileUtilTest
  }
}

入れ子内からのパッケージアクセス

入れ子内のパッケージは、その外側のパッケージに属しているため、以下のように、testパッケージからは外側のFileUtilがパッケージ名の修飾無く参照することができる。

package etc9.util {
  class FileUtil
  package test {
    class FileUtilTest {
      val t = new FileUtil
    }
  }
}

明示的なルートパッケージからの指定方法

パッケージ階層のルートから、明示的にパッケージを指定する場合には、_root_ というキーワードにてパッケージを指定する。
先の例は以下のようにルートから指定することもできる。

package etc9.util {
  class FileUtil
  package test {
    class FileUtilTest {
      val t = new _root_.etc9.util.FileUtil
    }
  }
}

パッケージ階層内で、他のパッケージが不可視になってしまう場合には、上記のように_root_を使用する。