Scala 包對象

2018-09-28 18:17 更新

包對象

到目前為止,我們看到的添加到包的都是類型,Trait 和單例對象(Object)。這些都是指包的定級層次定義的類型。Scala 的定級層次除了可以定義類,Trait,Object 之外,其它可以在類,Trait,Object 內部定義的類型,也都可以直接定義在包中,比如一些通用的函數(shù),變量,你都可以直接定義在包中。

在 Scala 中,可以把這些函數(shù)或方法放在一個稱為“包對象”中。每個包只有一個包對象,任何放在包對象的類型都可以認為是包自身的成員。

例如:

//in file bobsdelights/package.scala
package object bobsdelights{
  def showFruit(fruit: Fruit){
    import fruit._
    println(name + "s are " + color)
  }
}
//in file PrintMenu.scala
package printmenu
import bobsdelights.Fruits
import bobsdelights.showFruit
object PrintMenu{
  def main(args:Array[String]){
    for(fruit <- Fruits.menu){
      showFruit(fruit)
    }
  }
}

本例中對象 PrintMenu 可以引入包對象中定義的函數(shù) showFruit,方法和引入一個類定義一樣,也是通過 import 語句。

包對象通常被編譯為 package.class,其包名為定義的包。所有按照慣例一般包對象定義放在 package.scala 中,比如上面的包對象可以放在 bobsdelights 目錄下的 package.scala 中。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號