Essential Scala: Import Specfications

Scala是一门很自由的程序设计语言,程序员可以根据具体场景,选择最合适的武器来解决所面对的问题。例如,相对于Javaimport功能单一,死板,Scalaimport机制,更加灵活,自由。

加载所有成员

不仅可以加载某个包下所有的类,也可以加载某个类中所有的成员,或者加载单键对象内所有成员。

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.HashMapjava.util.HashMap将在本作用域内被隐藏。

相对性

因为scala被默认导入,scala.collection.immutable可简写为collection.immutable

import collection.immutable.HashMap

如果相对导入出现混淆,可以使用绝对导入的方法。

import _root_.scala.collection.immutable.HashMap

你可能感兴趣的:(Essential Scala: Import Specfications)