打开命令行输入go后我们可以看到:
下面我们来一一解释每个命令的用法:
go bug
start a bug report
该命令并不是debug,而是在命令行输入后进入到go的github主页,提交一份你发现的bug。
go build
compile packages and dependencies
编译包和依赖项。
go build
命令会编译当前目录下所有go文件。
如果只编译main包,go build
之后会在当前目录下生成一个可执行文件,如果想要在指定路径下生成可执行文件则使用go build -o 路径/xx.exe。
如果编译多个包或者单个非main包不会生成可执行文件。
如果想编译在某个文件夹下多个文件中的其中一个,可以在go build
之后加上文件名go build xx.go。
go build
会忽略以_
或者.
开头的go文件。
go clean
remove object files and cached files
删除对象文件和缓存文件.
该命令用来清理源码包中的编译生成的文件。一般用来在github递交源码之前使用。
go doc
show documentation for package or symbol
显示包或符号的文档
参数 | 含义 |
---|---|
- all | 打印包内所有实体 |
- c | 区分大小写 |
- cmd | 打印main中的实体 |
-src | 打印完整源码定义 |
go env
print Go environment information
打印go环境信息
查看当前go的环境变量可以加- json
以json
形式打印
go fix
update packages to use new APIs
更新包以使用新API
用来修复老版本的代码到新版本,让代码更新。
go fmt
gofmt (reformat) package sources
(重新格式化)包源代码
gofmt -w src
可以格式化整个项目。
go generate
generate Go files by processing source
按处理源生成Go文件
go get
add dependencies to current module and install them
将依赖项添加到当前模块并安装它们
动态获取远程代码, 这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行go install
参数 | 含义 |
---|---|
- d | 下载后不安装 |
- u | 更新包 |
- fix | 下载后做一下适配 |
- insecure | 允许不安全的下载 |
- t | 连测试包也下 |
- v | 启用详细进度和调试输出 |
go install
compile and install packages and dependencies
编译和安装包和依赖项
这个命令在内部实际上分成了两步操作:第一步是生成结果文件(可执行文件或者.a包),第二步会把编译好的结果移到$GOPATH/pkg
或者$GOPATH/bin
go list
list packages or modules
列出包或模块
列出当前安装的package,- f
显示指定信息- json
以json形式显示
go mod
module maintenance
模块维护
常用的go mod
命令如下:
go mod download 下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)
go mod edit 编辑go.mod文件
go mod graph 打印模块依赖图
go mod init 初始化当前文件夹, 创建go.mod文件
go mod tidy 增加缺少的module,删除无用的module
go mod vendor 将依赖复制到vendor下
go mod verify 校验依赖
go mod why 解释为什么需要依赖
go run
compile and run Go program
编译并运行Go程序
与go build
一样,但是不生成可执行文件
go test
test packages
测试包
执行这个命令,会自动读取源码目录下面名为*_test.go
的文件,生成并运行测试用的可执行文件。
go tool
run specified go tool
运行指定的go工具
命令打印你现在有什么工具
go version
print Go version
打印Go语言版本
go tool
run specified go tool
运行指定的go工具
命令打印你现在有什么工具
go version
print Go version
打印Go语言版本
go vet
report likely mistakes in packages
报告文件包中可能出现的错误