Scala 入门基础(包)

包是用来管理名称的,包括该名称的声明、定义等

* Scala通过不同的包能使用很多类型的表达式,而包的引入在Scala中相当灵活
* 能给已有的包增加名称,或者创建新的包
* 包是能互相嵌套的如:scala.collection.mutable的结构如下
    package scala { package collection { package mutable {......} } }
* 包声明链scala.collection.mutable并不使scala与scala.collection可见
* 包声明链亦不对包含的包进行声明
    即声明scala.collection并不意味着声明scala.collection.mutable

包的引入

* 直接使用
    val Y = scala.collection.mutable.Map((a1,b1),(a2,b2),(a3,b3))
* import
    import scala.collection.mutable.ArrayBuffer
    var C = new ArrayBuffer[T]() //空数组缓存,数组元素长度为0
* import 全部引入
    import scala.collection._
* 脚本前引入
* 具体使用处引入
* 包的引入有作用范围,和函数跟声明的作用范围一致

引入同一个包中的几个成员

import scala.collection.{A,B}

当需要引入不同的包中同名的成员时,需要重命名之或隐藏之

import scala.collection.mutable._
import java.util.{ HashMap => JavaHashMap }
OR
import java.util.{ HashMap => _, _}

Scala默认引入以下三个包

import java.lang._
import scala._
import Predef._

作用范围

* {......}号之间声明的量只有在{}内是有意义的
* {val a=0... {...val b=a}...} 内层能调用外层声明的量
* {val a=b...{val b=0...}...} 外层不能调用内层声明的量
* 内层声明与外层声明相同时,内层使用的是内层的声明,外层使用的是外层的声明
* 包的引入声明的量的作用范围是一致的