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