要在包中使用聲明,我們必須導(dǎo)入它們,就像在Java中一樣。
Scala提供了其他選項(xiàng),如下面導(dǎo)入Java類型的示例所示:
包是一個(gè)命名的代碼模塊。
Java和Scala慣例規(guī)定程序包名稱是代碼所有者的反向域名。
源文件中的第一個(gè)非注釋行:
package com.java2s.stuff
可以導(dǎo)入Scala包,以便可以在當(dāng)前編譯范圍中引用它們。
以下語(yǔ)句導(dǎo)入scala.xml軟件包的內(nèi)容:
import scala.xml._
以下語(yǔ)句導(dǎo)入scala.xml軟件包的內(nèi)容:
import transform._
我們可以從scala.collection.mutable包中導(dǎo)入單個(gè)類和對(duì)象,例如HashMap:
import scala.collection.mutable.HashMap
我們可以從單個(gè)包中導(dǎo)入多個(gè)類或?qū)ο螅?,從scala.collection.immutable包中導(dǎo)入TreeMap和TreeSet:
import scala.collection.immutable.{TreeMap, TreeSet}
import java.awt._ import java.io.File import java.io.File._ import java.util.{Map, HashMap}
我們可以在包中使用下劃線 _
作為通配符導(dǎo)入所有類型。
我們還可以導(dǎo)入單個(gè)Scala或Java類型,如第二行所示。
Java使用“星號(hào)"字符 *
作為導(dǎo)入的通配符。
在Scala中,此字符被允許作為方法名稱,因此使用 _
來(lái)避免歧義。
第三行導(dǎo)入java.io.File中的所有靜態(tài)方法和字段。
等效的Java導(dǎo)入語(yǔ)句將是import static java.io.File。*;
最后,我們可以導(dǎo)入一個(gè)類或?qū)ο蟛⒅孛?。例如,您可以從scala.util.parsing.json包中導(dǎo)入JSON類/對(duì)象,并將其重命名為JsonParser:
import scala.util.parsing.json.{JSON=> JsonParser}
import可以在任何代碼塊內(nèi)部使用,導(dǎo)入將僅在該代碼塊的范圍內(nèi)有效。
例如,我們可以在類體中導(dǎo)入一些東西,如下面的代碼所示:
class Frog { import scala.xml._ // }
例如,我們可以在類體中導(dǎo)入一些東西,如下面的代碼所示:
這很像Java的靜態(tài)導(dǎo)入。
組合局部范圍導(dǎo)入和導(dǎo)入對(duì)象允許我們微調(diào)導(dǎo)入對(duì)象及其關(guān)聯(lián)方法的位置。
Scala沒(méi)有導(dǎo)入靜態(tài)構(gòu)造,因?yàn)樗衿渌愋鸵粯訉?duì)待對(duì)象類型。
我們可以將import語(yǔ)句幾乎放在任何地方,以將它們的可見(jiàn)性限制在需要它們的地方。
我們可以在導(dǎo)入時(shí)重命名類型,我們可以禁止不需要的類型的可見(jiàn)性:
def stuffWithBigInteger() = { import java.math.BigInteger.{ ONE => _, TEN, ZERO => JAVAZERO } println( "TEN: "+TEN ) println( "ZERO: "+JAVAZERO ) }
Scala導(dǎo)入是相對(duì)的。
請(qǐng)注意以下導(dǎo)入的注釋:
import scala.collection.mutable._ import collection.immutable._ // Since "scala" is already imported import _root_.scala.collection.parallel._ // full path from real "root"
更多建議: