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