1. Go 语言概述和环境搭建
后端语言的发展从未停下脚步,得益于 Go 语言的简洁以及原生并发的特性,Go 语言在 Web 开发,高并发等领域有大量应用,在微服务时代,有必要了解 Go 语言的特性。本章将简单介绍 Go 语言以及如何搭建 Go 语言的开发环境。
1.1. 概述
Go 语言注重大道至简,通过简单的语法专为高并发场景的应用而生。
1.1.1. 起源
一门语言的出现,都是为了解决某个方面的问题,Go 语言也不例外,Go 语言的诞生是为了解决当时 Google 在软件开发中遇到的三大痛点:
- 编译慢:复杂的 C++ 项目编译时间过长,严重拖慢开发效率。
- 复杂度高:像 C++ 这样的语言为了兼容新特性而变得越来越臃肿和复杂。
- 难以适应多核时代:传统语言对并发编程的支持不够友好,无法高效利用多核 CPU 和网络。
为了解决这些问题,三位业界顶尖的工程师——罗伯特·格瑞史莫 (Robert Griesemer)、罗勃·派克 (Rob Pike) 和肯·汤普逊 (Ken Thompson)——于 2007 年 9 月开始设计一门全新的语言。
1.1.2. Go语言的优势
Go 语言的成功,很大程度上归功于其清晰且一以贯之的设计哲学:
- 大道至简:在设计上坚决“做减法”,语言特性极少(只有25个关键字),强制统一的代码格式,以降低学习成本、提高代码可读性。
- 原生并发:通过
goroutine(轻量级线程)和channel(通道)在语言层面提供并发支持,使得编写高并发程序变得非常安全、简单和高效。 - 组合优于继承:使用结构体(Struct)和接口(Interface)的组合而非复杂的类继承体系,使代码结构更灵活、易于测试和维护。
1.2. 安装
在官网 https://go.dev/ 下载

在 Download 页面,选择对应的平台版本:

下载完,是个安装包,一步步安装即可,安装完后,在控制台输入:
go version
可查看 go 的版本,如果能正确输出,则表明安装成功:

1.3. 第一个程序
每一门语言写的第一个代码都是打印 “Hello World”,这似乎成了一种约定俗成,下面也用 Go 语言实现了打印 “Hello World”,新建一个 “hello.go” 文件,文件内容如下:
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
此时,执行 go run hello.go,在控制台就能看到对应的输出 “Hello World”。现在对代码进行分析:
package main:声明了 main.go 所在的包,Go 语言中使用包来组织代码。一般一个文件夹即一个包,包内可以暴露类型或方法供其他包使用,这里面的包名为 main。import "fmt":fmt 是 Go 语言的一个标准库/包,用来处理标准输入输出。func main():main()函数是整个程序的入口,main()函数所在的包名也必须为 main。fmt.Println(“Hello World!”):调用 fmt 包的Println()方法,打印出 “Hello World!”
第一个程序已经写完,但是有几个点需要注意的是:
- 每一条语句后面没有
;的语句的结束符 main()函数后的{不能写到下一行,这是由编译器决定的- 打印函数
Println()的首字母大写,这是 Go 语言的可见性决定的
1.4. 本章小结
本章只是简单介绍了 Go 语言的起源以及 Go 语言的优势。Go 语言的兴起也是为解决特定的问题,通过一个简单的例子,让读者从安装环境到跑通第一个 Hello World 的例子。