0-安装与目录说明

Go 的安装比较简单,可参考 官方文档 进行安装,也可参考其它网站:Windows Linux Mac。安装完成之后,其各个目录的含义如下:

目录名说明
api每个版本的 api 变更差异
bingo 源码包编译出的编译器(go)、文档工具(godoc)、格式化工具(gofmt)
doc英文版的 Go 文档
lib引用的一些库文件
misc杂项用途的文件,例如 Android 平台的编译、git 的提交钩子等
pkgWindows 平台编译好的中间文件
src标准库的源码
test测试用例

Go 是编译型的语言,所写的代码可以直接编译成机器码,且 Go 语言不依赖于其它库,这是因为它自身就有很强大的标准库,这些标准库就在 src 这个文件夹中,其涵盖了大部分功能,具体如下:

标准库描述
bufio带缓冲的 I/O 操作
bytes实现字节操作
container提供了一些简单的容器实现,比如堆和环形链表
context提供了上下文传递的功能,通常用于处理请求链中的传递数据
crypto加密算法
database数据库驱动和接口
debug各种调试文件格式访问及调试功能
encoding常见算法如 JSON、XML、Base64 等
errors提供了一些处理错误的方法
flag用于解析命令行参数
fmt实现格式化输入输出
goGo语言的词法、语法树、类型等。可通过这个包进行代码信息提取和修改
hash提供一些哈希函数
htmlHTML 转义及模板系统
image常见图形格式的访问及生成
io提供了一些基本的IO操作,比如文件读写和流的操作
log简单的日志记录功能
math提供了一些基本的数学函数
net网络库,支持 Socket、HTTP、邮件、RPC、SMTP 等
os实现一些基本的操作系统接口
path兼容各操作系统的路径操作实用函数
plugin插件系统。支持将代码编译为插件,按需加载
reflect语言反射支持。可以动态获得代码中的类型信息,获取和修改变量的值
regexp正则表达式库
runtime运行时接口
sort实现对序列的排序操作
strings实现字符串操作
strconv实现基本数据类型与字符串之间的转换
sync提供了一些用于并发编程的原语
text文本模板及 Token 词法器
time实现时间和时间间隔相关的操作
testing提供了单元测试和性能测试的支持

当我们的 Go 需要安装一些外部工具,很多都需要魔法,可以参考 GOPROXY.IO 这个网站进行设置即可。

一个 Go 项目一般包含三个子目录:

目录作用
src放置项目和库的源文件
pkg放置编译后生成的包/库的归档文件
bin放置编译后生成的可执行文件