Scala
是一門很自由的程序設計語言,程序員可以根據具體場景栗弟,選擇最合適的武器來解決所面對的問題污筷。例如,相對于Java
的import
功能單一乍赫,死板瓣蛀,Scala
的import
機制,更加靈活雷厂,自由惋增。
加載所有成員
不僅可以加載某個包下所有的類,也可以加載某個類中所有的成員改鲫,或者加載單鍵對象內所有成員诈皿。
import scala.collection.immutable._
import java.lang.Math._
加載多個成員
相對于Java
多條語句才能完成的事情,Scala
使用一條語句即可像棘,這也體現了Scala
徹底貫徹DRY(Don't Repeat Youself)
原則的設計哲學稽亏。
import java.io.{File, IOException, FileNotFoundException}
作用域內加載
import
可局限于某個作用域,例如某個文件缕题,類截歉,單鍵對象,甚至是函數內烟零。
def random = {
import scala.util.Random
new Random
}
重命名
import java.util.{TreeMap => JTreeMap, HashMap => JHashMap}
import scala.collection.immutable._
此時瘪松,TreeMap
將無歧義地指向scala.collection.immutable.TreeMap
;如果要使用java.util.TreeMap
锨阿,則使用JTreeMap
凉逛。
隱藏
import java.util.{HashMap => _, _}
import scala.collection.immutable._
此時,HashMap
將無歧義地指向scala.collection.immutable.HashMap
群井;java.util.HashMap
將在本作用域內被隱藏状飞。
相對性
因為scala
被默認導入,scala.collection.immutable
可簡寫為collection.immutable
。
import collection.immutable.HashMap
如果相對導入出現混淆诬辈,可以使用絕對導入的方法酵使。
import _root_.scala.collection.immutable.HashMap