Programming in Scala(Second Edition)読書ノート13 packages and import

651 ワード

現在、1つのパッケージで見られるトップレベルのオブジェクトはclass,trait,objectのみです.実際には、どのオブジェクトでもトップレベルにすることができます.すなわち,関数,value,variableなどをclass,trait,objectに制限する必要はない.これらは、パッケージ全体でグローバルであることができます.
方法は簡単で、これらをパッケージobjectに東に置けばいいです.pakcage objectの名前とパッケージ名は同じです
package objectを含むファイルはこのpackagの下に置かれ、名前はpackageと呼ばれます.scala
chapter13/package.scala
package object chapter13 {
   def f(x : Int) = x * x
}

chapter13/Test.scala
package chapter13

object Test {
  class C {
    def g = f(_)
  }
}

object Testでは関数fが表示されます.
package objectの存在は,言語システム全体における関数の地位をさらに強化した.これにより、関数はオブジェクトに依存せず、オブジェクトの外でオブジェクトを操作できます.