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 [命令名]查看详细说明。

  

posted @ 2021-09-07 20:34  人艰不拆_zmc  阅读(349)  评论(0编辑  收藏  举报