• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go:包与工具

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1、基本概念

Go语言的闪电般的编译速度主要得益于三个语言特性。
第一点,所有导入的包必须在每个文件的开头显式声明,这样的话编译器就没有必要读取和分析整个源文件来判断包的依赖关系。
第二点,禁止包的环状依赖,因为没有循环依赖,包的依赖关系形成一个有向无环图,每个包可以被独立编译,而且很可能是被并发编译。
第三点,编译后包的目标文件不仅仅记录包本身的导出信息,目标文件同时还记录了包的依赖关系。因此,在编译一个包的时候,编译器只需要读取每个直接导入包的目标文件,而不需要遍历所有依赖的的文件(译注:很多都是重复的间接依赖)。

导入匿名包:import _ "image/png" // register PNG decoder
拿image包为例子,为了保持程序体积较小,很多解码器并没有被全部包含,除非是明确需要支持的格式。所以如果使用到某个方法需要手动进行引入,但是使用匿名包就可以解决这个问题。
可以参考:085-包的匿名导入

2、包和命名

  • 包名一般采用单数的形式。
  • 要避免包名有其它的含义。

3、工具

1、命令集合

2、工作区结构

GOPATH:用来指定当前工作目录,对应的工作区目录有三个子目录:

  • src子目录用于存储源代码。
  • pkg子目录用于保存编译后的包的目标文件。
  • bin子目录用于保存编译后的可执行程序。

GOROOT:用来指定Go的安装目录。

3、下载包、构建包、包文档

  • go get 命令获取的代码是真实的本地存储仓库,而不仅仅只是复制源文件。
  • go build 命令编译命令行参数指定的每个包。如果包是一个库,则忽略输出结果。
  • 默认情况下, go build 命令构建指定的包和它依赖的包,然后丢弃除了最后的可执行文件之外所有的中间编译结果。

4、内部包、查询包

go list
参考原文


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go语言基础之单元测试发布时间:2022-07-10
下一篇:
go语言快速入门教程发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap