Go语言是一门开发语言,又称GoLang,是Google公司于2009 年首次推出并在 2012 年正式发布的一种编
程语言。Google 对 Go 寄予厚望,其设计是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。它具有现代的程序语言特色,如垃圾回收,帮助开发者处理琐碎但重要的内存管理问题。Go 的速度也非常快,几乎和 C 或 C++ 程序一样快,且能够快速开发应用程序。
Go语言是由3位大师级的程序员[Robert Griesemer(开发了Java HotSpot虚拟机和js v8引擎), Rob Pike(Unix早期开发者,UTF-8创始人), Ken Thompson(B和C语言设计者、Unix和Plan 9创始人、1983年图灵奖获得者)所设计创造的,可谓是师出名门,又有谷歌公司持续背书。经过10余年的发展,Go语言在2018年已经变成了不可阻挡的一门流行的编程编程语言。在当前这个时间点,如果你还不了解Go,证明你已经out了。
Go语言的官方网站是 www.golang.org,但是因为被墙,这个网站在中国境内是访问不的。
有替代的官网:golang.google.cn,可以在此网站进行下载Golang的安装包。
另有不少的中文学习网址,大家可自行搜索即可
在https://golang.google.cn/dl/相应下载自己操作系统版本的相应的安装包,进行安装即可。
目前go语言已经出到1.12.5,在1.8版本之前需要安装者手工的设置相应的GoPath及GoRoot等环境变量,但是最新版本已经不再需要了,直接安装即可。
安装完毕后,在命令行使用
go version
在笔者的mac上显示如下,即为安装成功
> go version go1.12.5 darwin/amd64
在命令行使用以下命令查看相应的安装目录及环境变量设置情况
go env
显示如下,其中GOROOT 为GoLang的安装目录,GoPATH为Golang的工作目录(GoLang开发的很多工具要安装在此目录下)
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/frog3/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/frog3/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/86/x5qmjmpj3hq03wxxfmf95f0m0000gn/T/go-build701888979=/tmp/go-build -gno-record-gcc-switches -fno-common"
有了GoLang其实就可以开始写代码了。先建立一个文件hello.go,内容如下
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
命令行执行如下
# 编译程序,编译出hello程序
go build hello.go
# 执行如下命令
./hello
命令行会打印如下:
Hello World!
恭喜你,你已经完成了一个Go语言程序的编写。
在现实世界中,我们使用记事本或者vim来编写程序的情况还是少数,因此为了提高效率,安装一个Go语言的IDE还是有必要的。
Golang的开发IDE非常丰富,Eclipse体系的Goclipse、Atom配合GoLangPlus插件、JetBrains出品的Gogland,都是很不错的IDE,选用什么样的IDE并不重要,习惯就好了。
笔者选用的Visual Studio Code,因为其轻巧,免费,最新版本已经自带了Go语言插件,支持中文。
下载地址:https://code.visualstudio.com/
安装VS code过程不赘述,如果你下载的版本没有带默认的Go语言插件的话,可以采用手动安装Go插件即可,注意最新的Go语言的插件已经变成了微软出品了,安装最新的版本即可。
需要注意的是安装的Go语言的插件显示安装成功后,通常在右下角会出现[Analysis Tools Missing]的字样.
这是因为Go开发插件,默认还要安装一些Go语言的开发依赖工具,举例如下,
godebug debug
Gocode 自动完成上下文
GoDoc go doc
goLint 代码质量检测
go-outline 文件大纲
goFormat 自定义配置格式样式
但是这些依赖工具大部分在 golang.org,如前文所述,此网站被墙,会安装失败。现象就是在右下角会出现[Analysis Tools Missing]的字样,即使你按照提示选择重新安装,也依旧会安装失败,可以遵循以下方案来处理这些报错。
以其中的golint为例,其安装报错字样类似如下
Installing golang.org/x/lint/golint FAILED
1 tools failed to install.
golint:
Error: Command failed: /usr/local/go/bin/go get -u -v golang.org/x/lint/golint
Fetching https://golang.org/x/lint/golint?go-get=1
https fetch failed: Get https://golang.org/x/lint/golint?go-get=1: dial tcp 216.239.37.1:443: i/o timeout
package golang.org/x/lint/golint: unrecognized import path "golang.org/x/lint/golint" (https fetch: Get https://golang.org/x/lint/golint?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
Fetching https://golang.org/x/lint/golint?go-get=1
https fetch failed: Get https://golang.org/x/lint/golint?go-get=1: dial tcp 216.239.37.1:443: i/o timeout
package golang.org/x/lint/golint: unrecognized import path "golang.org/x/lint/golint" (https fetch: Get https://golang.org/x/lint/golint?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
如上所示,系统执行了go get -u -v golang.org/x/lint/golint
命令来安装lint工具, 但是无法从golang.org处下载到。
幸运的是相应的工具在https://github.com/golang上都有相应的源码,我们可以将其源码下载到$GOPATH下的scr目录下,GoLang就不用下载相应工具而可以直接安装了。
# 在$GOPATH下创建相应的目录$GOPATH/src/golang.org/x/
> cd $GOPATH/src/golang.org/x/
> git clone https://github.com/golang/lint.git
# 下载完成后,就可以不用get命令,而直接安装即可
go install golang.org/x/lint/golint
大部分的工具都在tools工程下,使用以下命令下载就好了。
> cd $GOPATH/src/golang.org/x/
# 下载相应的tools
> git clone https://github.com/golang/tools.git
然后再根据相应的报错提示把go get -u -v golang.org/x/xxxx/xxxx
改为 go install golang.org/x/xxxx/xxxx即可
处理完这些之后,右下角的报错不会再出现了,证明vs code已经完全安装了,可以愉快地撸代码。
你可以把你把步骤二的代码使用vs code再做一遍。