Chris's Blog

Keep Walking......

Getting Start With GoLang

Go语言以简单、并行、高效等优点已推出了好几年,但真正影响到很多人去关注的,应该是在最近一年,Go被成功运用到云计算等领域,也出现了越来越多的拥护者。最近因为工作的需要,也开始关注一些并行计算方面的东西,并行作为Go的一大卖点,自然要去了解一下。

我在Mac下先用HomeBrew安装了Go,不过发现安装出来的包不够全,没有godoc,其它还少了什么东西就没去仔细看了,然后还是从官方下载tar包来用。

安装完之后,除了将bin目录加入到path中,还要设置更重要的一个环境变量GOPATH。完成之后就可以开始体验Go了。

GOPATH

GOPATH为工作目录,也就是我们写Go程序的workspace。

按照约定,通常有以下三个子目录:

src:存放源代码(比如:.go等)
pkg:编译后生成的文件(比如:.a)
bin:编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中)

Go常用命令

go build

用于编译源文件。在包的编译过程中,若有必要,会同时编译与之相关联的包。

该命令会忽略目录下以“_”或“.”开头的go文件。

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产生

go fmt

用于格式化源代码文件。

go get

用于获取远程代码包,目前支持的有BitBucket、GitHub、Google Code和Launchpad。

这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行go install。

go install

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

go test

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

godoc

查看API文档。

在命令行执行 godoc -http=:<port>,比如 godoc -http=:8080。然后在浏览器中打开127.0.0.1:8080,你将会看到一个golang.org的本地版本,通过它可以查询pkg文档等其它内容。如果你设置了GOPATH,在pkg分类下,不但会列出标准包的文档,还会列出你本地GOPATH中所有项目的相关文档。

go fix

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

go version

查看go当前的版本。

go env

查看当前go的环境变量。

go list

列出当前全部安装的package。

go run

编译并运行Go程序。

准备好了开发环境,熟悉了以上常用的命令,就可以开始Go程序的旅程了。

Comments