go命令简介

1、go help

xx命令用于查看帮助信息,
go help bug用于查看go bug的帮助信息。

2、go build

go build命令主要用于测试编译。在包的编译过程中,若有必要,会同时编译依赖包。

-v 标记,可以把命令执行过程中构建的包名(包含编译过程中依赖的包)打印出来,
如果 go build 的是一个源码文件,则会打印出的包名为 command-line-arguments,

-x 标记,可以打印编译期间所用到的所有shell命令。

-o 标记,用来指定生成文件的路径和名称。

-a 标记,强制重新编译。

如果是普通包,执行go build命令后不会产生任何文件。
如果是main包,执行go build命令后,会在当前目录下生成一个可执行文件。

如果需要在$GOPATH/bin下生成相应的exe文件,
需要执行go install 或者使用 go build -o 路径/a.exe。

go build时会选择性地编译以系统名结尾的文件(Linux、Darwin、Windows、Freebsd)。
Linux系统下面编译只会选择array_linux.go文件,其它系统命名后缀文件全部忽略。

GO语言的源码文件分为三类,
命令源码文件、库源码文件和测试源码文件。
如果编译的是命令源码文件,或包含命令源码文件的包(main包)时,编译通过后会生成可执行文件;
反之则不会生成任何文件,只是做检查性编译。

GO语言默认使用静态编译,优点是部署时非常简单,但使用动态库,可以减少分发包的大小。
目前在windows下尚不支持编译成动态库。

如果是直接使用,表示试图编译当前目录所对应的代码包,
如果当前目录不是一个有效的代码包(包含在 $GOPATH/src 目录下)则会报错;
如果带上代码包名,则表示编译指定的代码包;
如果带上源码文件,则表示编译指定源码文件。

3、go clean

go clean命令用来移除当前源码包里面编译生成的文件

_obj/ 旧的object目录,由Makefiles遗留
_test/ 旧的test目录,由Makefiles遗留
_testmain.go 旧的gotest文件,由Makefiles遗留
test.out 旧的test记录,由Makefiles遗留
build.out 旧的test记录,由Makefiles遗留
DIR(.exe) 由 go build 产生
DIR.test(.exe) 由 go test -c 产生
MAINFILE(.exe) 由 go build MAINFILE.go产生

4、go fmt

go fmt命令主要用来格式化代码文件。
gofmt -w src,可以格式化整个项目。

5、go get

go get命令主要用来动态获取远程代码包,目前支持BitBucket、GitHub、Google Code和Launchpad。
      命令本质上是首先通过源码工具clone代码到src目录,然后执行go install。

go get命令在内部分成两步操作:
第一步是下载源码包
第二步是执行go install。

下载源码包的go工具会自动根据不同的域名调用不同的源码工具,对应关系如下:

BitBucket (Mercurial Git)
GitHub (Git)
Google Code Project Hosting (Git, Mercurial, Subversion)
Launchpad (Bazaar)

为了go get能正常工作,必须确保安装合适的源码管理工具,并同时把源码管理工具命令加入到PATH中。

6、go install

go install命令在内部分成两步操作:
第一步是生成结果文件(可执行文件或者.a包),
第二步会把编译好的结果移到 $GOPATH/pkg 或者$GOPATH/bin。

.exe文件: 一般是go install带main函数的go文件产生的,有函数入口,所有可以直接运行。
.a应用包: 一般是 go install不包含main函数的go文件产生的,没有函数入口,只能被调用。

7、go test

go test命令会自动读取源码目录下面名为*_test.go的文件,生成并运行测试用的可执行文件。

go test命令会自动把源码包里所有test文件测试完毕,帮助信息可以使用go help testflag查看。
进行单元测试的工具,单元测试代码建议与被测试代码放在同一个代码包中,
并以 "_test.go" 为后缀,测试函数建议以"Test"为名称前缀。

go test命令可以对代码包进行测试,也可以指定某个测试代码文件运行(要一并带上被测试代码文件)

8、go doc

go doc命令是一个很强大的文档工具,用于查看文档,
如查看builtin包执行go doc builtin,
查看http包执行go doc net/http。
查看某一个包里的函数,执行go doc fmt Printf,
查看函数相应的代码,执行go doc -src fmt Printf。

通过命令在命令行执行godoc -http=:端口号,比如godoc -http=:8080。
然后在浏览器中打开127.0.0.1:8080,会看到一个golang.org的本地copy版本,
通过网页可以查询pk文档等其它内容。

如果设置了GOPATH,pkg分类下会列出标准包的文档,本地GOPATH中所有项目的相关文档

9、go fix

go fix用来修复老版本的代码到新版本,例如go1前老版本的代码转化到go1。

10、go version

go version命令用于查看go当前的版本。

11、go env

go env命令用于查看当前go的环境变量,用于打印GO语言的环境信息,

GOPATH是工作区目录,
GOROOT是GO语言安装目录,
GOBIN是通过go install命令生成可执行文件的存放目录(默认是当前工作区的bin目录下),
GOEXE为生成可执行文件的后缀。

12、go list

go list命令用于列出当前全部安装的package。

13、go run

go run命令用于编译并运行Go程序,只能作用于命令源码文件,一般用于开发中快速测试。

14、go tool

go tool pprof性能检查工具,   go tool cgo跟C语言和GO语言有关的命令。

15、go vet

go vet是静态检查工具,用于一般项目快完成时进行进行优化。

16、go bug

go bug命令用于GO语言调试。

17、go generate

通过扫描Go源码中的特殊注释来识别要运行的常规命令。
go generate不是go build的一部分,
go generate不包含依赖关系分析,必须在运行go build前显式运行。
go generate由Go package的作者使用,而不是其客户端。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

**星光*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值