1、匿名导入包
如果只希望导入包,而不使用任何包内的结构和类型,也不调用包内的任何函数时,可以使用匿名导入包,格式如下:
import (
_ "path/to/package"
)
其中,path/to/package
表示要导入的包名,下画线_
表示匿名导入包。
匿名导入的包与其他方式导入包一样会让导入包编译到可执行文件中,同时,导入包也会触发 init()
函数调用。
2、单行导入
import "包1"
import "包2"
3、多行导入
import(
"包1"
"包2"
…
)
4、 导入包后自定义引用的包名
如果我们想同时导入两个有着名字相同的包,例如 math/rand
包和 crypto/rand
包,那么导入声明必须至少为一个同名包指定一个新的包名以避免冲突。这叫做导入包的重命名。
import (
"crypto/rand"
mrand "math/rand" // 将名称替换为mrand避免冲突
)
导入包重命名是一个有用的特性,它不仅仅只是为了解决名字冲突。
如果导入的一个包名很笨重,特别是在一些自动生成的代码中,这时候用一个简短名称会更方便。
选择用简短名称重命名导入包时候最好统一,以避免包名混乱。选择另一个包名称还可以帮助避免和本地普通变量名产生冲突。
例如,如果文件中已经有了一个名为 path
的变量,那么我们可以将"path"标准包重命名为 pathpkg
。
每个导入声明语句都明确指定了当前包和被导入包之间的依赖关系。如果遇到包循环导入的情况,Go语言的构建工具将报告错误。