Go 命令介绍
go 提供了一套强大好用的命令系统
go build 编译包和依赖项go clean 删除目标文件go env 打印Go环境信息go fix 在包上运行go tool修复,用来修复老版本到新版本的问题go fmt 在包源上运行gofmtgo generate 通过处理源生成Go文件go get 下载并安装包和依赖项go install 编译和安装包和依赖项go list 列出包go run 编译并运行go程序go test 测试包,运行以 _test.go结尾的文件go tool 运行指定的go工具go version 打印go版本go vet 在包上运行工具go vet,它可以在编译阶段和运行阶段发现bug
详细的官网地址为:中文 英文:
介绍几个常用的:
1、go build
go build [-o output][-i] [build flags][packages]
这个命令主要用于测试编译。在包的编译过程中,若有必要,会同时编译与之相关联的包。
- go build 会默认编译当前文件夹下的所有.go结尾的文件
- go build 会忽略目录下以“_”或“.”开头的 go 文件 ,所以不会编译测试文件
- build mian包的文件,会在当前目录生成一个可执行文件,其他不会。比如文件 demo.go ,我们进行go build demo.go 如果demo.go 是main包:执行结果会在当前目录生成一个可执行文件。如果想在gopath/bin下生成可执行文件的话需要执行go install 或者 go build -o 路径/name.exe [如果多文件再加上文件名]
- -o: 仅在编译单个包时允许,强制构建将结果可执行文件或对象写入命名输出文件,注意格式:go build -o 可执行文件名 .go文件名 ,例如 go build -o abc.exe demo.go,就会把demo.go编译并生成abc.exe,当然可以指定路径
- 可以根据不同的操作系统后缀来命名文件,go build 的时候会选择性地编译以系统名结尾的文件
2、go clean
这个命令是用来移除当前源码包里面编译生成的文件。这些文件包括
_obj/ 旧的 object 目录,由 Makefiles 遗留_test/ 旧的 test 目录,由 Makefiles 遗留_testmain.go 旧的 gotest 文件,由 Makefiles 遗留test.out 旧的 test 记录,由 Makefiles 遗留build.out 旧的 test 记录,由 Makefiles 遗留*.[568ao] object 文件,由 Makefiles 遗留DIR(.exe) 由 go build 产生DIR.test(.exe) 由 go test -c 产生MAINFILE(.exe) 由 go build MAINFILE.go 产生
一般在提交版本控制前,删除一些编译生成的文件
3、go fmt
格式化代码。go fmt <文件名>.go
一般开发工具都自带
使用 go fmt 命令,更多时候是用 gofmt,而且需要参数-w,否则格式化结果不会写入文件 。gofmt -w src
,可以格式化整个项目
4、go get
动态获取远程代码包 ,这个命令在内部实际上分成了两步操作:
第一步是下载源码包,第二步是执行 go install。 go 工具会自动根据不同的域名调用不同的源码工具 ,所以要正常使用确保安装了合适的源码管理工具。
5、go install
生成可执行文件。这个命令在内部实际上分成了两步操作:
第一步是生成结果文件(可执行文件或者.a 包),第二步会把编译好的结果移到$GOPATH/pkg 或者$GOPATH/bin
6、go test
执行这个命令,会自动读取源码目录下面名为*_test.go 的文件,生成并运行测试用的可执行文件。
7、go doc
执行godoc 可以查看bao、文件、以及方法的源码文档。比如:go doc net/http
godoc -src fmt Printf
等等。最好用的还是可以在本地搭建文档服务godoc -http=:端口号
然后访问localhost:端口号。如果你的pkg下有自己生成的文件,也会在文档列出来。
8、go run
很实用,编译并直接运行。比如 go run main.go
其他命令或者详细参数,用到的时候可以去查官方文档。