第10章 包和工具
现在随便一个小程序可能就包含10000个函数,但是我们不可能一个个去构建,大部分还是来自于他人,这些函数通过类似包和模块的方式被重用
go语言的包超过100个,可以在终端中使用go list std |wc -l去查看,开源包可以通过http://godoc.org来检索
go带了一个工具包里面有各种简化工作区和包管理的小工具
10.7 工具
现在我们再来看看go语言工具箱中的具体功能,包括如何下载、格式化、构建、测试和安装Go语言编写的程序
Go语言的工具箱集合了一系列功能的命令集,它是一个包管理器,可以查询包、计算包的依赖关系、从远程版本控制系统下载包;它也是一个构建系统,计算文件的依赖关系,然后调用编译器、汇编器和连接器构建程序;另外它也是一个单元测试和基准测试的驱动程序,我们将在下一章讨论这个问题
我们运行一下go命令,看看工具
% go
Go is a tool for managing Go source code.
Usage:
go <command> [arguments]
The commands are:
bug start a bug report
build compile packages and dependencies
clean remove object files and cached files
doc show documentation for package or symbol
env print Go environment information
fix update packages to use new APIs
fmt gofmt (reformat) package sources
generate generate Go files by processing source
get add dependencies to current module and install them
install compile and install packages and dependencies
list list packages or modules
mod module maintenance
run compile and run Go program
test test packages
tool run specified go tool
version print Go version
vet report likely mistakes in packages
Use "go help <command>" for more information about a command.
Additional help topics:
buildconstraint build constraints
buildmode build modes
c calling between Go and C
cache build and test caching
environment environment variables
filetype file types
go.mod the go.mod file
gopath GOPATH environment variable
gopath-get legacy GOPATH go get
goproxy module proxy protocol
importpath import path syntax
modules modules, module versions, and more
module-get module-aware go get
module-auth module authentication using go.sum
packages package lists and patterns
private configuration for downloading non-public code
testflag testing flags
testfunc testing functions
vcs controlling version control with GOVCS
Use "go help <topic>" for more info