美文网首页
Essential Scala: Import Specfica

Essential Scala: Import Specfica

作者: 刘光聪 | 来源:发表于2016-07-05 19:13 被阅读169次

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 Specfica

    Scala是一门很自由的程序设计语言,程序员可以根据具体场景,选择最合适的武器来解决所面对的问题。例如,相对于Ja...

  • scala基础之for循环

    import scala.math.sqrt import scala.util.control.Breaks.{...

  • Essential Scala: Literals

    Scala对象系统 总体上,Scala对象系统可分为两类: 引用类型 值类型 引用类型 AnyRef的子类 使用n...

  • Essential Scala: Bounds

    上界 隐式参数 可以提供「隐式参数」,改善smaller的设计。 当T为Int 编译器实际调用: 其中Orderi...

  • scala:import

    java中的import叫导入类,scala叫导入包 默认自动引入的包java.lang.*、scala.*、Pr...

  • essential scala: 伴生对象

    essential scala: 伴生对象 有时候我们想创建属于类的方法,在java中使用static关键字. 在...

  • Essential Scala: DRY List

    在函数式设计中,递归是一种重要的思维。本文通过List的实现为例,阐述Scala在设计具有「不变性」数据结构的思路...

  • Essential Scala: Ice Breaker

    Scala是一门结合OO, FP特性的混血儿,支持多种范式的程序设计语言。本文通过一个简单的例子,开启Scala的...

  • Essential Scala:Parameter Type &

    参数化类型 Reader 定义泛型的Reader[+T],并赋予协变的能力。 StringReader FileR...

  • Essential Scala: Loan Pattern

    资源自动回收是计算机工程实践中一项重要的实现模式,例如: C++: RAII技术 Java7以后:try-with...

网友评论

      本文标题:Essential Scala: Import Specfica

      本文链接:https://www.haomeiwen.com/subject/iuohjttx.html