一、Go语言简介

1、什么是Go语言

Go(又称Golang)是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Go语言既能达到静态编译语言的安全和性能水平,又达到了动态语言开发维护的高效率。

罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go于2009年11月正式宣布推出,成为开放源代码项目,并在 Linux 及 Mac OS X 平台上进行了实现,后来追加了 Windows 系统下的实现。在2016年,Go 被软件评价公司 TIOBE 选为“TIOBE 2016 年最佳语言”。 目前,Go每半年发布一个二级版本(即从a.x升级到a.y)。

2、Go语言的特点

  • Go语言从C语言中继承了很多理念,Go语言保留了指针,但可以自动地进行垃圾回收,而无需像C和C++需要手动进行垃圾回收
  • Go语言引入了包的概念,用于组织程序结构,Go语言的每个文件都要归属一个包,而不能单独存在
  • Go语言有垃圾回收机制,内存自动回收,不需要开发人员进行管理
  • Go语言天然支持并发,这是Go语言非常重要的一个特性。Go从语言层面支持并发,Go语言中的goroutine可实现大并发处理,高效利用多核
  • 吸收了管道通信机制,形成Go语言特有的管道(channel),通过管道可以实现不同的goroute之间的相互通信
  • 函数可以返回多个值
  • Go语言中还包含了切片(slice)、延时执行(defer)等新的创新

3、Go语言的应用

目前,Go语言主要用于区块链、服务端开发、分布式和云计算等领域。

二、开发环境配置

1、下载SDK

Go支持Linux、FreeBSD、Mac OS X 和 Windows,请下载对应操作系统的SDK。下面给出一些下载地址:

名称 下载地址
Go语言官网 https://golang.org/dl/
Google中国 https://golang.google.cn/dl/
Go语言中文网 https://studygolang.com/dl

2、配置环境变量

(1)对于 Unix / Linux / Mac OS X / FreeBSD 用户,打开终端,获取root权限之后将Go安装路径,bin文件路径以及工作目录路径添加到环境变量中:

1
2
3
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/project/go
  • 环境变量值请根据实际需要进行填写,以上仅供参考
  • 添加完环境变量之后在终端输入go version查看Go语言的版本,顺便检查环境变量是否配置正确

(2)对于 Windows 用户,Go 语言需要配置以下三个环境变量:

环境变量 说明
GOROOT 合法的Windows目录路径 指定SDK的安装路径
path %GOROOT%\bin 添加SDK的bin目录
GOPATH 合法的Windows目录路径 工作目录
  • 配置完成之后以管理员身份运行控制台,输入go version来查看Go语言的版本,顺便检查环境变量是否配置正确

三、开发流程

下面将通过编写一个Hello World程序来来讲Go语言程序开发的流程。

1、开发

在Go语言的工作目录下新建一个hello.go文件,在文件中添加以下内容:

1
2
3
4
5
6
7
package main

import "fmt"

func main() {
fmt.Println("hello world!")
}

2、编译

打开终端或控制台,在源代码所在目录下输入以下内容:

1
go build hello.go

之后会在当前目录生成可执行文件hello(Linux / Mac OS X)或hello.exe(Windows操作系统)。

3、运行

Linux / Mac OS 用户打开终端,在可执行文件所在路径下输入hello便可运行程序,Windows 用户打开控制台或PowerShell,在可执行文件所在路径下输入hello.exe(控制台)或.\hello.exe(PowerShell)便可运行程序。

有很多的编辑器和IDE可以进行Go语言程序的开发,推荐使用 Visual Studio CodeGoLand 进行开发,下面将通过一张图片说明使用 Visual Studio Code 并在 Windows 系统上进行 Go 语言程序开发的完整流程:

编译-运行

Go语言除了可以通过静态编译生成可执行文件来运行之外,还可以通过go run指令直接运行(本质上还是需要进行编译),例如上面的例子就可以直接在控制台输入go run hello.go来运行:

直接运行

四、注意事项

1、源文件以”.go”为拓展名

Go语言的源程序统一以.go结尾,如果文件名不以.go结尾将无法通过编译。

2、程序入口是main()函数

Go语言以main()函数作为整个程序的入口。

3、严格区分大小写

Go语言严格区分大小写,Hellohello在Go语言中是不相同的。

4、每条语句后不需要分号

Go语言中每条语句的结尾不需要添加分号,因为Go语言在编译时会自动添加分号,这体现出Go语言的简洁性。

5、不能把多条语句写在一行

Go语言是按行进行编译的,因此如果在一行中写入多条语句将无法通过编译:

不能把多条语句写在一行

6、定义的变量或导入的包一定要使用

在Go语言中,定义的变量或者导入的包一定要使用,否则将无法通过编译:

定义的变量或导入的包一定要使用

五、代码风格

1、注释

Go语言有两种注释方法,分别是行注释//和块注释/**/,Go官方推荐使用行注释。此外需要注意的是在Go语言中块注释不可以进行嵌套,否则会报错。

2、缩进和空白

  • 使用gofmt进行格式化。Go语言提供了格式化工具,可在终端或控制台输入gofmt对源代码进行格式化

  • 运算符两侧留空白,尽量养成一个良好的编程习惯

3、代码块

正确的写法:

1
2
3
func main() {
// code
}

错误的写法:

1
2
3
4
func main()
{
// code
}

如果采用了错误的写法,就会出现以下结果:

代码块格式错误

可以看到,当采用错误的格式时,编译将无法通过,因为Go语言的设计者提倡一个问题尽量只有一个解决方法。

4、输出字符数量

输出的字符一行最好不超过80个字符,超过的请使用换行符,尽量保持格式的优雅。

六、相关资料

1、Go指南

官方网站:https://golang.orghttps://golang.google.cn/。

Go语言中文网:https://studygolang.com

2、标准库API

官方API文档:https://golang.org/pkg/https://golang.google.cn/pkg/

中文文档:https://studygolang.com/pkgdoc