《Deep In Go》
  • 介绍
  • Go 语言数据结构
    • 程序实体
    • 命令 & 程序入口
    • 库
    • 数组和切片
    • Map
    • 结构体
    • 函数
    • 指针
    • 循环与判断
    • 接口
    • 错误
    • Panic Recover Defer
  • Go 实现通用数据结构
    • 复杂度分析
    • 链表
      • 单链表
      • 双向链表
      • 循环链表
      • 链表的常见操作
      • 链表的应用(进阶)——LRU 缓存
      • 链表的应用(高级)——LFU 缓存
    • 排序
  • Go 并发机理
    • Channel 信道
    • Mutex 锁
    • Cond 条件变量
    • Automic 原子操作
    • WaitGroup 同步
    • Context 上下文
    • Pool 临时对象池
    • Sync Map 并发安全字典
  • Go 并发编程指南
  • Go I/O
    • Bufio
    • 字符编码
    • Strings 操作
    • Bytes 包
  • Go 系统调用
    • OS API
    • Socket & IPC
  • Go 源码分析
    • 切片
  • Go 语言开发规范
  • Go Test
  • Go FAQ
由 GitBook 提供支持
在本页

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。

上一页介绍下一页程序实体

最后更新于5年前