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》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM