Go语言介绍
官方
Go语言特点
- 简单易学,类似C语言的风格
- 内置了goroutine机制,语言层面支持并发
- Go目前已经内置了大量的标准库
- 跨平台编译
- 内嵌C支持,可利用丰富的C语言库
学习社区
- 官网 [](http://golang.org/project/)http://golang.org/project/
- Golang中文社区 [](http://studygolang.com/)http://studygolang.com/
- Golang中国 [](http://golangtc.com)http://golangtc.com
开源项目
- Docker [](http://www.docker.com/)http://www.docker.com/
Docker是一个开源的应用容器引擎 - etcd [](https://github.com/coreos/etcd/)https://github.com/coreos/etcd/
etcd是一个高可用的Key/Value存储系统,主要用于分享配置和服务发现 - nsq [](https://github.com/bitly/nsq/)https://github.com/bitly/nsq/
实时分布式的消息平台 - 更多开源项目:[](https://github.com/golang/go/wiki/Projects/)https://github.com/golang/go/wiki/Projects/
- Docker [](http://www.docker.com/)http://www.docker.com/
学习资料推荐
官方文档
开源书籍《Go Web 编程》
[](https://github.com/astaxie/build-web-application-with-golang)https://github.com/astaxie/build-web-application-with-golanggo语言的中文翻译
[](http://github.com/Go-zh/go)http://github.com/Go-zh/goGO开发者对GO初学者建议[](http://segmentfault.com/a/1190000000654351)http://segmentfault.com/a/1190000000654351
Go安装与配置
Go中的三个环境变量
- GOROOT
Go语言安装的路径,如MAC下:/usr/local/go,类似JAVA中的JAVA_HOME - GOPATH
GOPATH表示包所在的地址,可以设置多个。
假设:GOPATH=~/go1:~/go2,GOROOT=/usr/local/go,在代码中引用了包:github.com/bitly/nsq/util
那么: Go在编译时会按先后次序到以下目录中寻找源码:
~/go1/src/github.com/bitly/nsq/util
~/go2/src/github.com/bitly/nsq/util
/usr/local/go/src/github.com/bitly/nsq/util - PATH
可执行实例的路径
- GOROOT
Go命令
- 学习文档 [](https://github.com/hyper-carrot/go_command_tutorial)https://github.com/hyper-carrot/go_command_tutorial
- go 显示命令相关帮助信息
- go build 编译包和依赖,会在执行命令时所在目录生成可执行文件
- go clean 清理编译生成的文件
- go env 显示go环境变量
- go fmt 格式化代码
- go install 编译和安装包、依赖
- go run 编译并运行go程序
- go get 获取或更新代码包及其依赖,并对他们进行编译和安装
- go test 运行测试代码
Go Web开发框架
- Beego [](http://beego.me/)http://beego.me/
MVC框架,作者为中国人,框架中中文文档丰富,用户群体大,便于交流。学习难度低。 - Revel [](http://revel.github.io/)http://revel.github.io/
思路来自Java的Play Framework,相对Beego难一点。 - Martini [](http://martini.codegangsta.io/)http://martini.codegangsta.io/
简单灵活,大量使用反射,初学不易上手。
- Beego [](http://beego.me/)http://beego.me/