Go命令是管理Go资源的工具,安装好Go环境后会内置很多有用的命令工具。

初步的了解一下这些命令的用途,对写代码很有帮助

有一些命令是非常常用的,比如 run、build、get、test、get,有一些命令在使用IDE后很少会用到,IDE代劳了。

常规用法:

命令: 

fmt命令:

运行方法: go fmt xxx.go

fmt这个命令可以帮助程序员调整程序的格式,使之成为标准格式。这个还是很不错的,尤其是那些有代码洁癖的程序员,如果不希望自己的代码被别人code review的时候挑一些细节上的小格式错误,就试试fmt这个命令吧,很多IDE就是调用这个命令来在保存文件时调整格式。

vet命令:

运行方法: go vet xxx.go

如果开发人员已经写了一些开发的代码了,vet会帮程序员检查程序中是否存在一些常见的错误,比如定义常用方法时,方法签名的错误,没有指定字段名的结构字面量等等。当然,vet命令是不能帮程序员解决逻辑错误的问题的,只可能是一些语法错误。

例如当前目录定义了main.go文件,在fmt.Printf()中使用了错误的格式符%d,而编译器并不会检查到该错误,这会导致程序运行时的输出和预期不符。

使用vet命令进行静态检查,会报告此错误。

bug命令:创建一个bug报告
执行完命令后,会用浏览器访问github.com/golang/go 的issue。自动填写一些内容,引导你如何提交一个bug报告

build命令:编译包以及其依赖
最常用的命令之一。默认情况下,会在命令所在目录生成一个当前操作系统对应的可执行文件。安装完整版的Go环境,可以交叉编译其他操作系统的二进制可执行文件

编译代码包:go build [代码包的导入路径]

常见标记

标记描述
-o 指定输出文件。
-a 强行对所有涉及到的代码包(包括标准库中的代码包)进行重新构建,即使它们已经是最新的了。
-n 打印构建期间所用到的其它命令,但是并不真正执行它们。
-p n 构建的并行数量(n)。默认情况下并行数量与CPU数量相同。
-race 开启数据竞争检测。此标记目前仅在linux/amd64、darwin/amd64和windows/amd64平台下被支持。
-v 打印出被构建的代码包的名字。
-work 打印出临时工作目录的名字,并且取消在构建完成后对它的删除操作。
-x 打印出构建期间所用到的其它命令。

clean命令:清空对象文件和缓存文件
前面提到的build命令和下面的test命令会生成一些文件和目录,clean会清理掉这些文件,包括build命令生成可执行文件

doc命令:打印包中的文档和标记符
打印出包或指定文件的说明文档,加上-all 参数,可以看到包里的所有函数列表和文档。
创建一个go文件,写入一下代码

go doc -all -u

env命令:打印出你现在的Go环境信息

查看各个go的开发环境参数,忘记GOPATH和GOROOT路径就可以用这个打印出来了

go fix [packages]go fix

generate命令:根据指令生成go文件
查找当前包相关的源代码文件,找出所有包含”//go:generate”的注释,提取并执行该特殊注释后面的命令,类似shell执行命令。

go get <包的路径>

install命令:编译和安装包及其依赖包
可执行文件会被安装在$GOPATH/bin目录下。

list命令:列出目录下的所有包和模块,每行一个。

run命令: 运行go项目
非常常用。
它会编译包,然后直接运行起来,不会在当前目录生成二进制文件。

test命令:运行调试

用于运行_text.go文件中的Test开头并且参数为 *testing.T的函数
tool命令:运行指定的go工具

version命令:查看当前go版本

总结:

go help [命令名]