一、Go简介 |
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
Go 语言最主要的特性:
- 自动垃圾回收
- 更丰富的内置类型
- 函数多返回值
- 错误处理
- 匿名函数和闭包
- 类型和接口
- 并发编程
- 反射
- 语言交互性
- 易于部署
再说说我学习go的原因:
1.性能优越:这是个总所周知的特点,天生具备高并发性。
2.部署方便:一开始我只是想尝尝鲜,然后写了一点点代码,然后发现编译非常简单,同时部署时候就是二进制包(linux)或exe文件(windows),这对于做运维的人来说太方便了。
3.最近在学习kuberneters,其实现也是go语言,所以让我下定了学习go的决心。
二、GO与Python |
作为python程序员,我对python当然也在熟悉不过了,总所周知由于GIL所问题导致速度较慢,当然go弥补了这个缺点,由于初学go还不了解,只能从他人之言了解到go与python对比:
https://studygolang.com/articles/3102
http://developer.51cto.com/art/201710/555200.htm
三、开发环境搭建 |
1.下载包:
安装包下载地址为:https://golang.org/dl/。
如果打不开可以使用这个地址:https://golang.google.cn/dl/
各个系统对应的包名:
操作系统 | 包名 |
---|---|
Windows | go1.10.windows-amd64.msi |
Linux | go1.10.linux-amd64.tar.gz |
Mac | go1.10.darwin-amd64-osx10.8.pkg |
FreeBSD | go1.10.freebsd-amd64.tar.gz |
2.安装
windows
将下载好的包运行,一直点击下一步就行了,安装完成后打开cmd 输入go version如果返回正确的版本代表安装成功。
仅仅安装好msi是不够的,还需要配置一些东西:GOPATH
Go从1.1版本到1.7必须设置这个变量,而且不能和Go的安装目录一样。
这个目录用来存放Go源码,Go的可运行文件,以及相应的编译之后的包文件。
所以这个目录下面有三个子目录:src、bin、pkg
从go 1.8开始,GOPATH环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go
,在Windows上默认为%USERPROFILE%/go
。
如果你的是Unix(mac/linux)环境需要:
export GOPATH=/opt/src/go
Windows则需要新建一个环境变量名称叫做GOPATH,当然,go 的msi安装包安装完成后,己默认设置了GOPATH,我们只需要右击【此电脑】-【属性】-【高级系统设置】-【高级】-【环境变量】设置编辑就可以了
GOPATH允许多个目录,当有多个目录时,请注意分隔符,多个目录的时候Windows是分号,Linux系统是冒号,当有多个GOPATH时,默认会将go get的内容放在第一个目录下。
以上 $GOPATH 目录约定有三个子目录:
- src 存放源代码(比如:.go .c .h .s等)
- pkg 编译后生成的文件(比如:.a)
- bin 编译后生成的可执行文件(为了方便,可以把此目录加入到
$PATH
变量中,如果有多个gopath,那么使用${GOPATH//://bin:}/bin
添加所有的bin目录)
UNIX/Linux/Mac OS X, 和 FreeBSD 安装
以下介绍了在UNIX/Linux/Mac OS X, 和 FreeBSD系统下使用源码安装方法:
1、下载源码包:go1.103.linux-amd64.tar.gz。
2、将下载的源码包解压至 /usr/local目录。
tar -C /usr/local -xzf go1.103.linux-amd64.tar.gz
3、将 /usr/local/go/bin 目录添加至PATH环境变量:
export PATH=$PATH:/usr/local/go/bin
ps:max下如果你安装了brew,你还可以通过brew进行安装
brew install go 或者 brew install golang
四、开始hello world |
在你的上文的GOPATH下新建一个文件src/hello/hello.go,内容如下:
package main import "fmt" func main() { fmt.Println("Hello, World!") }
切入到cmd使用go run 运行该文件
你也可以编译成可执行文件执行:
cmd下进入到文件所在目录,我的目录是C:Users17647Desktopgo_worksrchello,运行go build:
此时会你会发现目录多了.exe文件直接运行就可以了