go 命令备忘

这里简单记录几个常用的go命令。

go build

Go语言的编译速度非常快。Go 1.9 版本后默认利用Go语言的并发特性进行函数粒度的并发编译。

Go语言的程序编写基本以源码方式,无论是自己的代码还是第三方代码。

Go语言以 GOPATH 作为工作目录和一套完整的工程目录规则。因此 Go 语言中编译时无须像 C++ 一样配置各种包含路径、链接库地址等。

go build 命令主要用于编译代码,若有必要,会同时编译与之相关联的包。

go build 有很多种编译方法,如无参数编译、文件列表编译、指定包编译等,使用这些方法都可以输出可执行文件。

注意:需要编译的项目/文件一定要有 main package,且包含main函数,否则无法 build。

  1. go build 命令默认会编译当前目录下的所有 go 文件。如果没有main package,不会产生任何文件。

  2. 如果你只想编译其中某一个文件,可以在 go build 之后加上文件名,例如 go build a.go。

  3. 如果需要在 $GOPATH/bin 目录下生成相应的可执行文件,需要执行 go install 或者使用 go build -o </path/xxx>。

  4. go build 会忽略目录下以”_”或者”.”开头的go文件。

  5. 如果你的源代码针对不同的操作系统需要不同的处理,那么你可以根据不同的操作系统后缀来命名文件。例如有一个读取数组的程序,它对于不同的操作系统可能有如下几个源文件:

    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。

这个命令在内部实际上分成了两步操作:

  1. 下载源码包
  2. 执行go install。

下载源码包的go工具会自动根据不同的域名调用不同的源码工具。

go install

go install 命令在内部实际上分成了两步操作:

  1. 生成结果文件(可执行文件或者.a包)
  2. 把结果移到 $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语言文档,并且可以看自己代码的文档。

参考资料


搭建个人在线IDE —— vscode online vscode code server 配置 golang 和 php 开发环境