Scala--包和引入

一、包

同一个包可以定义在多个文件中,你也可以在同一个文件中定义多个包

文件名为:pack.scala

package com{
  package scala{
    package test{
      class pack {
        println("This is pack")
      }
      class pack1{
        println("This is pack1")
      }
    }
  }
}

在其他文件中可以引用该包的类

  import com.scala.test.pack

  val p = new pack
  val p1 = new pack1

目录和包没有关联关系

二、作用域规则

使用绝对包名:new _root_.scala.collection.mutable.ArrayBuffer[Int]

三、串联式包语句

package com.scala.test{
  
}

com 和 com.scala 不可见

四、文件顶部标记法

顶部标记,不使用{}

package com.scala
package test

class pack{
  println("This is pack")
}

class pack1{
  println("This is pack1")
}

com.scala的内容是可见的,com的内容是不可见的

五、包对象

package com.scala.test

package object people{
  val defaultName = "John"
}

package people{
  class Persion{
    var name = defaultName   // 从包对象拿到的常量
  }
}

package object

六、包可见性

七、引入

import java.awt._

_和java中的*类似

八、任何地方都可以声明引入

import语句可以出现在任何地方

九、重命名和隐藏方法

想引入包中的几个成员,可以使用选取器{}

import java.awt.{color, font}

重命名=>

import java.util.{HashMap => JavaHashMap}   // HashMap重命名为JavaHashMap
import scala.collection.mutable._           // 后续使用HashMap对应scala.collection.mutable.hashmap

隐藏 =>_

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

十、隐式引入

每个scala程序都默认引入如下包

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

参考《快学Scala》

原文地址:https://www.cnblogs.com/one--way/p/5801766.html