1、匿名導(dǎo)入包
如果只希望導(dǎo)入包,而不使用任何包內(nèi)的結(jié)構(gòu)和類型,也不調(diào)用包內(nèi)的任何函數(shù)時(shí),可以使用匿名導(dǎo)入包,格式如下:
import (
_ "path/to/package"
)
其中,path/to/package
表示要導(dǎo)入的包名,下畫(huà)線_
表示匿名導(dǎo)入包。
匿名導(dǎo)入的包與其他方式導(dǎo)入包一樣會(huì)讓導(dǎo)入包編譯到可執(zhí)行文件中,同時(shí),導(dǎo)入包也會(huì)觸發(fā) init()
函數(shù)調(diào)用。
2、單行導(dǎo)入
import "包1"
import "包2"
3、多行導(dǎo)入
import(
"包1"
"包2"
…
)
4、 導(dǎo)入包后自定義引用的包名
如果我們想同時(shí)導(dǎo)入兩個(gè)有著名字相同的包,例如 math/rand
包和 crypto/rand
包,那么導(dǎo)入聲明必須至少為一個(gè)同名包指定一個(gè)新的包名以避免沖突。這叫做導(dǎo)入包的重命名。
import (
"crypto/rand"
mrand "math/rand" // 將名稱替換為mrand避免沖突
)
導(dǎo)入包重命名是一個(gè)有用的特性,它不僅僅只是為了解決名字沖突。
如果導(dǎo)入的一個(gè)包名很笨重,特別是在一些自動(dòng)生成的代碼中,這時(shí)候用一個(gè)簡(jiǎn)短名稱會(huì)更方便。
選擇用簡(jiǎn)短名稱重命名導(dǎo)入包時(shí)候最好統(tǒng)一,以避免包名混亂。選擇另一個(gè)包名稱還可以幫助避免和本地普通變量名產(chǎn)生沖突。
例如,如果文件中已經(jīng)有了一個(gè)名為 path
的變量,那么我們可以將"path"標(biāo)準(zhǔn)包重命名為 pathpkg
。
每個(gè)導(dǎo)入聲明語(yǔ)句都明確指定了當(dāng)前包和被導(dǎo)入包之間的依賴關(guān)系。如果遇到包循環(huán)導(dǎo)入的情況,Go語(yǔ)言的構(gòu)建工具將報(bào)告錯(cuò)誤。