go 命令备忘
2021-04-06 tech go 4 mins 1445 字
这里简单记录几个常用的go命令。
go build
Go语言的编译速度非常快。Go 1.9 版本后默认利用Go语言的并发特性进行函数粒度的并发编译。
Go语言的程序编写基本以源码方式,无论是自己的代码还是第三方代码。
Go语言以 GOPATH 作为工作目录和一套完整的工程目录规则。因此 Go 语言中编译时无须像 C++ 一样配置各种包含路径、链接库地址等。
go build
命令主要用于编译代码,若有必要,会同时编译与之相关联的包。
go build 有很多种编译方法,如无参数编译、文件列表编译、指定包编译等,使用这些方法都可以输出可执行文件。
注意:需要编译的项目/文件一定要有 main package,且包含main函数,否则无法 build。
-
go build 命令默认会编译当前目录下的所有 go 文件。如果没有main package,不会产生任何文件。
-
如果你只想编译其中某一个文件,可以在 go build 之后加上文件名,例如 go build a.go。
-
如果需要在
$GOPATH/bin
目录下生成相应的可执行文件,需要执行 go install 或者使用 go build -o </path/xxx>。 -
go build 会忽略目录下以”_”或者”.”开头的go文件。
-
如果你的源代码针对不同的操作系统需要不同的处理,那么你可以根据不同的操作系统后缀来命名文件。例如有一个读取数组的程序,它对于不同的操作系统可能有如下几个源文件:
array_linux.go array_darwin.go array_windows.go array_freebsd.go
go build
的时候会选择性地编译以系统名结尾的文件(Linux、Darwin、Windows、Freebsd)。例如Linux系统下面编译只会选择array_linux.go文件,其它系统命名后缀文件全部忽略。
go clean
用来移除当前源码包里面编译生成的文件
go get
用来动态获取远程代码包的,目前支持的有BitBucket、GitHub、Google Code和Launchpad。
这个命令在内部实际上分成了两步操作:
- 下载源码包
- 执行go install。
下载源码包的go工具会自动根据不同的域名调用不同的源码工具。
go install
go install 命令在内部实际上分成了两步操作:
- 生成结果文件(可执行文件或者.a包)
- 把结果移到 $GOPATH/pkg 或者 $GOPATH/bin
go test
自动读取源码目录下面名为 *_test.go
的文件,生成并运行测试用的可执行文件。
go doc
go doc 可以打印当前目录下文件的方法和类型定义
go doc
go doc -u xxxStruct
go doc http.Request
godoc
go get -v golang.org/x/tools/cmd/godoc
godoc -http=:6060
以网页方式展现的Go文档,使得我们在不方便访问Go语言官方站点的情况下也可以查看Go语言文档,并且可以看自己代码的文档。