Go命令:
go build
- 用于编译代码,默认会编译当前目录下的所以go文件。若只需编译某个文件,go build后加上文件名,如go build a.go。
- go build会忽略目录下以“_”或“.”开头的go文件。
- 若源代码针对不同操作系统做不同处理,可根据不同操作系统后缀来命名文件,如array_linux.go,array_windows.go, go build时Linux系统下面编译指挥选择array_linux.go,其他系统后缀命名的文件全部忽略。
- go help build 查看参数介绍
go clean
- 用于移除当前源码包和关联源码包里面编译生成的文件。包括:
- _obj/ 旧的object目录
- _test/ 旧的test目录
- _testmain.go 旧的gotest文件
- test.out 旧的test记录
- bulid.out 旧的test记录
- *.[568ao] object文件 由Makefiles遗留
- DIR(.exe) go build产生
- DIR.test(.exe) go test -c 产生
- MAINFILE(.exe) go build MAINFILE.go产生
- *.so SWIG产生
- 一般利用这个命令清除编译文件后推送git。
- go help clean 查看参数介绍。
go fmt
- 用于代码格式化,go fmt其实调用了gofmt,需要加参数-w,不然格式化后结果不会写入文件。
- gofmt -w | src 格式化整个项目。
- go help fmt查看参数介绍。
go get
- 用于获取远程代码包,步骤为:1.下载源码包;2.执行go install。go会根据源码包域名调用不同源码工具,需要提前下载相应的源码工具:
- BitBucket (Mercurial, Git)
- GitHub (Git)
- Google Code Project Hosting (Git, Mercurial, Subversion)
- Launchpad (Bazaar)
- go help get查看参数介绍。
go install
- 用于生成可执行文件或者.a包,之后把编译好的结果移到$GOPATH.pkg或者$GOPATH/bin下。
- go help install查看参数介绍,常用-v,查看底层执行信息。
go test
- 执行此命令读取源码目录下*_test.go文件,生成并运行测试用的可执行文件。
- 默认下回把源码包中所有test文件测试完毕。
- go help test查看参数介绍。
go tool
- go tool下聚集了很多命令,常用fix和vet:
- go tool fix . 用于修复以前老版本的代码到新版本
- go tool vet directory|files 用来分析当前目录的代码是否都是正确的代码
- go help tool查看参数介绍
- go tool不带参数查看go tool下的所有命令
go generate
- Go1.4开始设计,用于在编译前自动化生成某类代码。
- go generate是给自己用,用法如下:
- go tool yacc -o gopher.go -p parser gopher.y 生成代码 -o指定输出的文件名。
- //go:generate go tool pacc -o gopher.go -p parser gopher.y 在当前目录任意一个go文件里任意位置加上此注释出发go generate。
- $ go generate 生成 $ go build 编译 $ go test 测试 若gopher.y文件有修改,重新执行go generate生成此文件。
- go help generate查看参数介绍
go doc
- 文档工具,用于查看bao文档
- Go1.2版本之前支持go doc命令,之后全部移到godoc命令下,安装如下:
- go get golang.org/x/tools/cmd/gpdoc
- godoc net/http 查看内建包里的函数
- godoc fmt Printf 查看包里的函数的代码
- godoc -http:8080 浏览器访问127.0.0.1:8080 会渲染一个golang.org的本地copy版本 端口随意。
其它命令
- go version 查看go当前的版本
- go env 查看当前go的环境变量
- go list 列出当前全部安装的package
- go run 编译并运行Go程序
实践出真知~