go 导包

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语言的构建工具将报告错误。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 现如今即便是个人开发的一般程序,可能其包含的函数都超过了一万个,这些函数代码一般都由他人编写并打包为“包”或者“模...
    左蓝阅读 6,501评论 3 15
  • 原文链接 https://golang.org/cmd/go/由于内容过长,分两次发布 Go 是一个用来管理Go源...
    Cxb168阅读 1,274评论 0 0
  • 这份规范,是参考了 Go 官方提供的编码规范,以及 Go 社区沉淀的一些比较合理的规范之后,加入自己的理解总结出的...
    拾丨玖阅读 1,298评论 0 4
  • 以下内容是我在学习和研究Go时,对Go的特性、重点和注意事项的提取、精练和总结,还有一些学习笔记(注:部分笔记是摘...
    科研者阅读 628评论 0 1
  • 本文翻译自 Go 语言官方文档,收集了 Go 语言代码评审时的常见问题,适合掌握基本语法的初学者。阅读时间大约 1...
    空之古城阅读 2,218评论 0 4