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
OSLinux
OS bit64bit
二进制链接https://storage.googleapis.com/golang/go1.7.5.linux-amd64.tar.gz

这里写图片描述

安装命令:
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]#

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

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

C语言的经验者

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

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值