Programming in Scala (Second Edition) 读书笔记13 packages and import

目前,在一个包中你看到的top level的对象只有:class, trait, object。其实任何对象都可以是top level的。也就是说,没有必要把函数,value, variable等限制在class, trait, object中。它们可以在整个包范围内都是全局性的。

方法很简单,把这些东东放到package 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的存在,进一步加强了函数在整个语言系统中的地位。因为这样函数就可以不依赖于对象,而是在对象外面操作对象。

你可能感兴趣的:(scala)