go语言快速入门:简介(1)

go语言成为2016年TIOBE年度语言,距离上次TIOBE年度语言至今已经过去7年,在过去的7年里,go语言也得到了广泛的应用,尤其是在开源领域,从docker到kubernetes都使用了go作为开发语言。在这系列文章中,我们将一起来由浅入深学习一下go语言,至少在研究这些流行的开源软件更加得心应手一些。

背景

go语言是由google在2009年11月10日发布的一门全新的语言,支持面向对象和反射机制,具有接近于c的运行速度,远远快于c和c++的编译速度,近似脚本语言的灵活。当然和总多流行语言一样,有着众多坚定的支持者和不屑一顾的反对者,但是从它诞生到现在,发展和扩散的速度一直很快也是不争的事实。

特点

go语言具有很多的特点,将一部分主要特点列举如下:

项番 详细内容
No.1 静态编译型语言
No.2 语法简洁,趋近于脚本化
No.3 跨平台支持
No.4 自动垃圾回收机制
No.5 具有并发变成模型和机制(goroutine等)
No.6 支持多种编程风格,支持面向对象
No.7 无继承层次的轻量级方式
No.8 全面的工具支持
No.9 统一的代码风格以及自己的代码格式化工具
No.10 编译和运行速度飞快
No.11 总多的标准库
No.12

安装

安装非常简单,只需要下载/解压/设定环境变量即可,本系列文章中使用CentOS,整体相关相差无几,仅仅在于安装时的package/以及环境变量的设定方式的OS的差别而已。

项目 详细信息
下载地址 https://golang.org/dl/
下载版本 1.7.5
OS Linux
OS bit 64bit
二进制链接 https://storage.googleapis.com/golang/go1.7.5.linux-amd64.tar.gz

go语言快速入门:简介(1)_第1张图片

安装命令:
cd /usr/local
wget https://storage.googleapis.com/golang/go1.7.5.linux-amd64.tar.gz
gunzip -dc go1.7.5.linux-amd64.tar.gz |tar xvf -

环境变量

go只需要设定GOROOT和PATH即可,在CentOS如下设定即可对全用户有效。

[root@liumiaocn ~]# tail -n2 /etc/profile
export GOROOT=/usr/local/go
export PATH=$PATH:${GOROOT}/bin
[root@liumiaocn ~]#

结果确认

[root@liumiaocn ~]# echo $GOROOT
/usr/local/go
[root@liumiaocn ~]# which go
/usr/local/go/bin/go
[root@liumiaocn ~]#

除了GOROOT和PATH的环境变量,GO还有其他一些环境变量,入门阶段可以不作深入确认,在后面的学习中将会慢慢展开,如上安装之后,相关的环境变量信息如下所示:

项目 设定内容
GOARCH “amd64”
GOBIN “”
GOEXE “”
GOHOSTARCH “amd64”
GOHOSTOS “linux”
GOOS “linux”
GOPATH “”
GORACE “”
GOROOT “/usr/local/go”
GOTOOLDIR “/usr/local/go/pkg/tool/linux_amd64”
CC “gcc”
GOGCCFLAGS “-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build703746769=/tmp/go-build -gno-record-gcc-switches”
CXX “g++”
CGO_ENABLED “1”

版本确认

使用如下命令,可以确认所安装的版本为go1.7.5,安装则正常完成了。

[root@liumiaocn ~]# go version
go version go1.7.5 linux/amd64
[root@liumiaocn ~]#

安装详细

解压后,go1.7.5被gunzip到/usr/local/go下,详细的信息如下所示:

[root@liumiaocn go]# pwd
/usr/local/go
[root@liumiaocn go]# ls -l
total 132
drwxr-xr-x.  2 root root  4096 Jan 26 12:43 api
-rw-r--r--.  1 root root 29041 Jan 26 12:43 AUTHORS
drwxr-xr-x.  2 root root    39 Jan 26 12:48 bin
drwxr-xr-x.  4 root root    35 Jan 26 12:48 blog
-rw-r--r--.  1 root root  1168 Jan 26 12:43 CONTRIBUTING.md
-rw-r--r--.  1 root root 40192 Jan 26 12:43 CONTRIBUTORS
drwxr-xr-x.  8 root root  4096 Jan 26 12:43 doc
-rw-r--r--.  1 root root  5686 Jan 26 12:43 favicon.ico
drwxr-xr-x.  3 root root    17 Jan 26 12:43 lib
-rw-r--r--.  1 root root  1479 Jan 26 12:43 LICENSE
drwxr-xr-x. 14 root root  4096 Jan 26 12:48 misc
-rw-r--r--.  1 root root  1303 Jan 26 12:43 PATENTS
drwxr-xr-x.  7 root root    82 Jan 26 12:48 pkg
-rw-r--r--.  1 root root  1638 Jan 26 12:43 README.md
-rw-r--r--.  1 root root    26 Jan 26 12:43 robots.txt
drwxr-xr-x. 45 root root  4096 Jan 26 12:43 src
drwxr-xr-x. 18 root root  8192 Jan 26 12:48 test
-rw-r--r--.  1 root root     7 Jan 26 12:43 VERSION
[root@liumiaocn go]#

对经常可能用到的文件夹,进行简单说明如下:

项目 详细说明
api go各个版本的api,保存在go1.1.txt到go1.7.txt7个文件中。except.txt保存即将废弃的api,而next.txt保存着下个版本将会出现的内容
bin 相关的可执行文件,缺省会有go/gofmt/godoc
doc 离线官方文档和说明
misc 各IDE的插件等
pkg go标准库的归档文件
src 源码
test 测试代码

C语言的经验者

有C语言的经验的开发者中可以从下面的比较中快速上手。
http://hyperpolyglot.org/c

总结

通过本文可以简单了解go的特点以及如何在centos上安装go1.7.5,以及安装后各目录的作用。

你可能感兴趣的:(编程语言,go语言快速入门)