Scala 包與導入(完結)

包與導入


Scala使用包來創建用於模塊化程序的命名空間。

1 創建包

通過在Scala文件的頂部聲明一個或多個包名稱可以創建包

package com.hk.test1

慣例是將包命名爲與包含Scala文件的目錄相同的名稱。但是,Scala與文件佈局無關。
package users的sbt項目目錄結構如下:
目錄結構

位於相同包下的多個Scala文件具有相同的包聲明。

另一種聲明包的方式是使用花括號,並且這種方式可以嵌套包,並且提供更好的範圍與封裝控制。

package test1 {
  package sss {
    class ssss {}
  }
}

報名應該爲小寫,並且如果代碼在一個擁有網站的組織中開發,它應該使用如下約定:< top-level-domain >.< domain-name >.< project-name >。

例如,如果谷歌具有一個名爲SelfDrivingCar的項目,項目名應當爲:

package com.google.selfdrivingcar.camera
class Lens

而它對應的目錄結構應當爲:

SelfDrivingCar/src/main/scala/com/google/selfdrivingcar/camera/Lens.scala

2 導入

import子句用於方法其他包中的成員(類、特質、函數等),訪問相同包下成員不需要import語句。

# 導入com.hk.test1.eeee包下所有元素
import com.hk.test1.eeee._

# 導入類wwww
import com.hk.test1.eeee.wwww

# 導入類wwww與類iii
import com.hk.test1.eeee.{wwww,iii}

# 導入類wwww並將其名改爲www
import com.hk.test1.eeee.{wwww => www}

Scala與Java的區別之一便是,Scala可以在任意位置使用import語句。

import com.hk.test1.eeee.iii
val i:iii = new iii

如果出現命名衝突,可以通過在導入的包名前添加_root_前綴從項目的根處導入。

# 從項目的根處導入
import _root_.com.hk.test1.eeee.iii

注意:scala與java.lang包與object Predef相同,默認導入。

翻譯源:Scala Tour