【Go 语言学习笔记】简介和环境准备

发表于 2023-06-11

什么是 Go 语言

任何一门语言的出现都是为了解决其他语言的一些痛点而存在,所以我对 Go 语言进行了初略的了解。

我们可以知道 Go 语言是一门类 C 语言,但是它又拥有垃圾回收(GC、内存安全),可以说是融合 C 语言、Java 等众家之长的编程语言。

Go 语言是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,也是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。

特点及优势

在简单了解后,我大概能理解如下关于 Go 语言的特点和优势。

也通过写笔记的方式,让我能够在像他人表达的过程中进一步掌握 Go 语言。

自动垃圾回收

内存和资源管理在某些语言(C、C++)中是一个难点,因为对于内存的使用和释放都需要开发者手动管理,一个小疏忽就可能引发内存泄漏,导致程序甚至系统崩溃。

而 Go 语言的现代化垃圾回收机制降低了开发难度,把麻烦的内存管理交给专业的编译器去做,而让程序员专注于更意义的事情(算法逻辑或者系统设计)。

丰富的内置类型

Go 语言相对于其他语言,内置的数据类型更为丰富。

例如 map 是直接作为内置类型的存在,还有数组切片(Slice)。

函数多返回值

在主流语言中基本都不支持函数的多返回值功能,需要自定义结构体的方式来携带函数中产生的多个数据。

Go 语言的多返回值功能让开发者既不用再只为了返回多个值而专门定义一个数据结构,Go 语言的函数天然支持多值返回。

不一样的错误处理

Go 语言引入了 defer 关键字用于标准的错误处理流程,并提供了内置函数 panic、recover 完成异常的抛出与捕获。

与 Java 等语言中的异常捕获机制相比,Go 语言的开发者无需再仅为了程序安全而添加大量一层套一层的 try-catch 语句。

简洁的类型

Go 语言使用 C 语言中的结构甚至直接沿用了 struct 关键字。

Go 语言没有如 Java 这种语言超级复杂的类型系统,Go 语言遵循一个原则:组合优于继承,因为继承的特性都可以通过组合的方式实现。

并发编程

Go语言引入了 goroutine 概念。

goroutine 是一种比线程更加轻盈、更省资源的协程。

相对于多线程,协程实现的并发编程变得更加轻盈和安全。

Go 语言用途

很多公司特别是云计算公司开始用 Go 重构他们的基础架构,很多都是直接采用 Go 进行了开发。

像引领虚拟化、容器化的 Docker 就是采用 Go 语言开发的。

Go 语言开发环境准备

Go 语言的包下载

访问 Go 语言中文社区 在下载页面下载对应环境的工具包。

Go 语言中文社区下载

配置开发工具 VsCode

VsCode 是免费的,可以直接到官网下载。通过安装 Go 语言编译器插件,就可以使用 VsCode进行 Go 语言的开发。

在 VsCode 插件页面搜索 Go,安装 Go 语言官方插件。

VsCode Go 语言插件

在 VsCode 页面通过快捷键 Ctrl + Shift + P 调出用于执行命令的输入框。

输入 Go: Install/Update Tools 安装相关工具。

VsCode Go 语言插件

在执行命令时可能会遇到报错信息:commands go.tools.install not found。配置代理:

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn

选中确认安装

VsCode Go 语言插件

Demo

创建项目目录 demo

使用命令创建 module:go mod init main 生成 go.mod 文件。

创建文件 main.go。

package main

import (
	"fmt"
)

func main() {
	fmt.Println("Hello Go")
}

使用 F5 快捷键执行。