一、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 | export GOROOT=/usr/local/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 | package main |
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 Code 或 GoLand 进行开发,下面将通过一张图片说明使用 Visual Studio Code 并在 Windows 系统上进行 Go 语言程序开发的完整流程:
Go语言除了可以通过静态编译生成可执行文件来运行之外,还可以通过go run
指令直接运行(本质上还是需要进行编译),例如上面的例子就可以直接在控制台输入go run hello.go
来运行:
四、注意事项
1、源文件以”.go”为拓展名
Go语言的源程序统一以.go
结尾,如果文件名不以.go
结尾将无法通过编译。
2、程序入口是main()函数
Go语言以main()
函数作为整个程序的入口。
3、严格区分大小写
Go语言严格区分大小写,Hello
和hello
在Go语言中是不相同的。
4、每条语句后不需要分号
Go语言中每条语句的结尾不需要添加分号,因为Go语言在编译时会自动添加分号,这体现出Go语言的简洁性。
5、不能把多条语句写在一行
Go语言是按行进行编译的,因此如果在一行中写入多条语句将无法通过编译:
6、定义的变量或导入的包一定要使用
在Go语言中,定义的变量或者导入的包一定要使用,否则将无法通过编译:
五、代码风格
1、注释
Go语言有两种注释方法,分别是行注释//
和块注释/**/
,Go官方推荐使用行注释。此外需要注意的是在Go语言中块注释不可以进行嵌套,否则会报错。
2、缩进和空白
使用
gofmt
进行格式化。Go语言提供了格式化工具,可在终端或控制台输入gofmt
对源代码进行格式化运算符两侧留空白,尽量养成一个良好的编程习惯
3、代码块
正确的写法:
1 | func main() { |
错误的写法:
1 | func main() |
如果采用了错误的写法,就会出现以下结果:
可以看到,当采用错误的格式时,编译将无法通过,因为Go语言的设计者提倡一个问题尽量只有一个解决方法。
4、输出字符数量
输出的字符一行最好不超过80个字符,超过的请使用换行符,尽量保持格式的优雅。
六、相关资料
1、Go指南
官方网站:https://golang.org 或 https://golang.google.cn/。
Go语言中文网:https://studygolang.com。
2、标准库API
官方API文档:https://golang.org/pkg/ 或 https://golang.google.cn/pkg/。