Scala 包對(duì)象

2018-09-28 18:17 更新

包對(duì)象

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

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

例如:

//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)
    }
  }
}

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

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

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)