Go 语言数据结构

本章主要介绍的是 Go 语言的数据结构及其特性,比如struct、slice、map等。

数据类型方面有:

  • 基于底层数组的切片;

  • 用来传递数据的通道;

  • 作为一等类型的函数;

  • 可实现面向对象的结构体;

  • 能无侵入实现的接口等。

语法方面有:

  • 异步编程神器go语句;

  • 函数的最后关卡defer语句;

  • 可做类型判断的switch语句;

  • 多通道操作利器select语句;

  • 非常有特色的异常处理函数panic和recover。

除了这些,我们还一起讨论了测试 Go 程序的主要方式。

这涉及了 Go 语言自带的程序测试套件,相关的概念和工具包括:

  • 独立的测试源码文件;三种功用不同的测试函数;

  • 专用的testing代码包;

  • 功能强大的go test命令。

Go 语言提供的那些同步工具。它们也是 Go 语言并发编程工具箱中不可或缺的一部分。这包括了:

  • 经典的互斥锁;

  • 读写锁;

  • 条件变量;

  • 原子操作。

以及 Go 语言特有的一些数据类型,即:

  • 单次执行小助手sync.Once;

  • 临时对象池sync.Pool;

  • 帮助我们实现多 goroutine 协作流程的sync.WaitGroup、context.Context;

  • 一种高效的并发安全字典sync.Map。

最后更新于