Golang语言常用命令
Go命令是管理Go资源的工具,安装好Go环境后会内置很多有用的命令工具。
初步的了解一下这些命令的用途,对写代码很有帮助
有一些命令是非常常用的,比如 run、build、get、test、get,有一些命令在使用IDE后很少会用到,IDE代劳了。
常规用法:
`go <命令> [参数]`
命令:
fmt命令:
运行方法: go fmt xxx.go
fmt这个命令可以帮助程序员调整程序的格式,使之成为标准格式。这个还是很不错的,尤其是那些有代码洁癖的程序员,如果不希望自己的代码被别人code review的时候挑一些细节上的小格式错误,就试试fmt这个命令吧,很多IDE就是调用这个命令来在保存文件时调整格式。
vet命令:
运行方法: go vet xxx.go
如果开发人员已经写了一些开发的代码了,vet会帮程序员检查程序中是否存在一些常见的错误,比如定义常用方法时,方法签名的错误,没有指定字段名的结构字面量等等。当然,vet命令是不能帮程序员解决逻辑错误的问题的,只可能是一些语法错误。
例如当前目录定义了main.go文件,在fmt.Printf()中使用了错误的格式符%d,而编译器并不会检查到该错误,这会导致程序运行时的输出和预期不符。
package main import "fmt" func main() { s := "this is a string" fmt.Printf("inappropriate formate %d\n", s) }
使用vet命令进行静态检查,会报告此错误。
$ go vet main.go # command-line-arguments ./main.go:7:2: Printf format %d has arg s of wrong type string
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文件,写入一下代码
/* 这是一个范例 */ package main import "fmt" //main 主函数 func main() { SayHi() } //SayHi 打印字符串Hello world func SayHi() { fmt.Println("Hello world!!") }
执行命令 go doc -all -u
env命令:打印出你现在的Go环境信息
查看各个go的开发环境参数,忘记GOPATH和GOROOT路径就可以用这个打印出来了
fix命令:用go的新版本的API更新go fix [packages]
如果你升级了go,担心以前的代码不兼容,那么就可以用 go fix
generate命令:根据指令生成go文件
查找当前包相关的源代码文件,找出所有包含”//go:generate”的注释,提取并执行该特殊注释后面的命令,类似shell执行命令。
get命令:下载和安装go包以及其依赖包的命令go get <包的路径>
install命令:编译和安装包及其依赖包
可执行文件会被安装在$GOPATH/bin目录下。
list命令:列出目录下的所有包和模块,每行一个。
mod命令:详细内容可以参考文章: 拜拜了,GOPATH君!新版本Golang的包管理入门教程
run命令: 运行go项目
非常常用。
它会编译包,然后直接运行起来,不会在当前目录生成二进制文件。
test命令:运行调试
用于运行_text.go文件中的Test开头并且参数为 *testing.T的函数tool命令:运行指定的go工具
version命令:查看当前go版本
总结:
这些命令大部分使用起来都很简单,想了解更多可以运行go help [命令名]
查看详细说明。