Go语言介绍
Go语言又称Golang,2007年诞生于Google公司,2012年3月发布Golang 1.0。Golang被称为 云计算时代的 C语言 ,它有以下几个特点:
- 接近于C语言的性能。
- 上手容易。语法较少,容易掌握。
- 跨平台。Golang同时支持Windows、MacOS以及 Linux 等三大主流操作系统。
- 自动内存管理。Golang运行时自带垃圾回收功能,省去在C语言中手动维护变量生命周期的烦恼。
- 支持协程。Golang实现的goroutine从语言层面支持了 协程 ,这也是Golang程序性能一般高于 其它语言 的主要原因之一。协程可以看作是用户态的 线程 、轻量级线程,一个系统级的线程可以运行上千个协程,创建一个协程代价相对于线程也是十分的低廉。
关于Golang具体的特性将在后续文章中叙述,这里暂且略过。
Go环境安装及配置
安装Go可以通过下列方法:
- 安装包安装。 官网上提供各个操作系统的安装包。由于一些原因,如无法下载,可以私信我获取安装包。
- 源代码安装。限于文章篇幅,具体操作步骤后续文章再介绍。
- 对于MacOS还可以通过brew包管理工具安装。
环境配置
执行go version命令,查看当前安装的Go语言版本以验证安装成功。
➜ ~ go version
go version go1.12.5 darwin /amd64 # 此处显示Go语言版本为1.12.5 平台架构为darwin/amd64,即MacOS系统64位版本。
设置 环境变量
Go语言编程环境中有几个环境变量特别重要,在Happily coding之前应当先进行设置:
- GOROOT。该变量指定了Go语言安装的根目录。Windows系统下会自动设置为Go语言安装目录,默认是c:\Go。Linux系统默认是/usr/local/go。
- GOPATH。该变量指定了Go语言编程的工作目录。Windows下默认是%USERPROFILE%\go(即c:\ Users \<user_name>\go), Linux/MacOS下默认是$HOME/go。
- GO bin 。该变量指定了 可执行程序 的目录,默认是$GOPATH/bin。执行go install命令时,会将生成的可执行文件放到该目录。通常情况下,会将GOBIN指定的目录添加PATH环境变量中,以便在命令行任意位置运行GOBIN目录中可执行文件。
- GOOS。用于设置go build/install等命令的目标操作系统。
- GOARCH。用于设置go build/install等命令的目标平台CPU架构。
- GOPROXY。设置下载依赖包时的代理服务器地址。go 1.11版本加入了GOPROXY的支持,可以将该环境变量设为。你懂的,谁用谁知道。
最后,可以执行go env命令列出所有的环境变量设置,下面是笔者电脑上的设置。
➜ ~ go env GOARCH="amd64" GOBIN="" GOOS="darwin" GOPATH="/Users/rocgao/go" GOPROXY="" GOROOT="/usr/local/Cellar/go/1.12.5/libexec"
第一个Go语言程序- HelloWorld
按照惯例,任何语言都从HelloWorld开始。下面的操作均是在MacOS上完成,其它系统请根据实际情况修改相关命令。
- 进入环境变量GOPATH指定的目录,该目录下通常会有src、pkg、bin等几个目录。进入src目录,并创建helloworld目录。
➜ ~ cd $GOPATH/src ➜ src mkdir helloworld ➜ src cd helloworld ➜ helloworld pwd /Users/rocgao/go/src/helloworld
- 创建main.go文件,并输入下列代码
1 // main.go 2 3 package main 4 5 import ( 6 "fmt" 7 ) 8 9 func main() { 10 fmt.Println("Hello World!") 11 }
- 编译和运行。在helloworld目录中执行go build,Go会查找目录及子目录中的所有*.go文件并进行编译,同时根据环境变量GOOS、GOARCH的设置在helloworld目录中生成可执行文件。
➜ helloworld go build # 执行go build命令编译 ➜ helloworld ll total 4128 -rwxr-xr-x 1 rocgao staff 2.0M Jul 13 10:48 helloworld # go build生成的可执行文件 -rw-r--r-- 1 rocgao staff 91B Jul 13 10:47 main.go ➜ helloworld ./helloworld #执行生成的文件,程序输出Hello World! Hello World!
HelloWorld代码解释
程序很简单,只有一个main.go文件,下面来解释一下。
- 第1行是以//开头。Go语言中,单行内//后面为注释部分。
- 第3行用package关键字指定了main.go文件所在包名为main。Go语言中,一个可执行程序必须要有一个main函数,并且在main包中。
- 第4~7行使用import关键字导入Go标准库fmt包。
- 第9~11行定义了main函数。Go语言中使用func关键来定义函数,且{左花括号必须与函数声明在同一行。
- 调用fmt.Println函数打印Hellow World。Println函数在标准库的fmt包中。
至此,一个Go语言的HelloWorld程序就写完啦!希望对想成为一名gopher的同学有所帮助~~