探索Go语言:简介与安装指南

发表时间: 2019-07-30 12:40

一、简介

Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点:

  • 内置并发编程支持:
  • 使用协程(goroutine)做为基本的计算单元。轻松地创建协程。
  • 使用数据通道(channels)来实现协程间的同步和通信。
  • 内置了映射(map)和切片(slice)类型。
  • 支持多态(polymorphism)。
  • 使用接口(interface)来实现装盒(value boxing)和反射(reflection)。
  • 支持指针。
  • 支持函数闭包(closure)。
  • 支持方法。
  • 支持延迟函数调用(defer)。
  • 支持类型内嵌(type embedding)。
  • 支持类型推断(type deduction or type inference)。
  • 内存安全。
  • 自动垃圾回收。
  • 良好的代码跨平台性。

Go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。

Go程序员常常被称为地鼠(gopher)。

上面已经提到,Go属于编译型的静态语言。但是Go的很多特性使得用Go编程像使用动态脚本语言一样的灵活。 一般很难将静态语言的严格性和动态语言灵活性的优点合二为一。但是Go做到了这一点。 当然,合二为一也会不可避免地带来一些弊端。 但是,对于Go来说,合二为一带来的好处远多于合二为一的带来的弊端。

可读性是在Go语言的设计中一个非常重要的考虑因素。 一个Go程序员常常可以轻松读懂其他Go程序员写的代码。 甚至对于一个没有Go编程经验但具有其它语言编程经验的程序员来说,读懂一份Go源码也不是一件难事。

目前,使用最广泛的Go编译器由Go官方设计和开发团队维护。 以后我们将称此编译器为标准编译器。标准编译器也常常称为gc(是Go compiler的缩写,不是垃圾回收garbage collection的缩写)。 Go官方设计和开发团队也维护着另外一个编译器,gccgo。 gccgo是gcc编译器项目的一个子项目。 gccgo的使用广泛度大不如gc, 它的主要作用是做为一个参考,来保证gc的实现正确性。 目前两个编译器的开发都很活跃,尽管Go开发团队在gc的开发上花费的精力更多。

gc编译器是Go SDK中一个组件。 Go SDK的使用将在下一篇文章中介绍。 Go SDK 1.0发布于2012年三月。 Go语言规范的最新版本和Go SDK的最新版本总是保持一致。 每年Go SDK发行两个主版本。

自从Go语言正式发布后,Go的语法变化很小。 但是标准编译器gc却在不断地改进。 使用早期的gc编译的程序在运行的时候在每次垃圾回收的结尾常常会有明显的停顿。 但是自从Go 1.8,使用gc编译的程序在运行时刻已经基本消除了停顿现象。

gc支持跨平台编译。 比如,我们可以在Linux平台上编译出Windows程序,反之亦然。

二、安装

Go有多种安装方式,以下是三种安装方式的优缺点:

  • Go源码安装:这是一种标准的软件安装方式。对于经常使用Unix类系统的用户,尤其对于开发者来说,从源码安装可以自己定制。
  • Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合快速安装,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了。推荐这种方式
  • 第三方工具安装:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get、Mac的homebrew等。这种安装方式适合那些熟悉相应系统的用户。

标准包安装详细过程

Go提供了每个平台打好包的一键安装,这些包默认会安装到如下目录:/usr/local/go (Windows系统:c:\Go),当然你可以改变他们的安装位置,但是改变之后你必须在你的环境变量中设置如下信息:

export GOROOT=$HOME/goexport GOPATH=$HOME/gopathexport PATH=$PATH:$GOROOT/bin:$GOPATH/bin

上面这些命令对于Mac和Unix用户来说最好是写入.bashrc或者.zshrc文件,对于windows用户来说当然是写入环境变量。

1、Linux 安装

访问下载地址https://golang.org/dl/,32位系统下载go1.12.7.linux-386.tar.gz,64位系统下载
go1.12.7.linux-amd64.tar.gz,

假定你想要安装Go的目录为 $GO_INSTALL_DIR,后面替换为相应的目录路径。

解压缩tar.gz包到安装目录下:

tar zxvf go1.12.7.linux-amd64.tar.gz -C $GO_INSTALL_DIR

设置PATH,

export PATH=$PATH:$GO_INSTALL_DIR/go/bin

然后执行go

如果出现go的Usage信息,那么说明go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了go的安装目录。

2、Windows 安装

访问下载页https://golang.org/dl/,32 位请选择名称中包含 windows-386 的 msi 安装包,64 位请选择名称中包含 windows-amd64 的。下载好后运行,不要修改默认安装目录 C:\Go\,若安装到其他位置会导致不能执行自己所编写的 Go 代码。安装完成后默认会在环境变量 Path 后添加 Go 安装目录下的 bin 目录 C:\Go\bin\,并添加环境变量 GOROOT,值为 Go 安装根目录 C:\Go\ ,目前Go 1.8版本之后,默认配置环境变量。

验证是否安装成功

在运行中输入 cmd 打开命令行工具,在提示符下输入 go,检查是否能看到 Usage 信息。输入 cd %GOROOT%,看是否能进入 Go 安装目录。若都成功,说明安装成功。

不能的话请检查上述环境变量 Path 和 GOROOT 的值。若不存在请卸载后重新安装,存在请重启计算机后重试以上步骤。