Go语言高级开发与实战
Ctrlk
  • 备注
  • 1.1 GO语言基础
    • 1.1.1 基础语法
    • 1.1.2 变量
    • 1.1.3 常量
    • 1.1.4 运算符
    • 1.1.5 流程控制语句
  • 1.2 字符串实战技巧
    • 1.2.1 字符串基础
    • 1.2.2 中文字符串的截取
    • 1.2.3 按单词或字节翻转字符串
    • 1.2.4 生成随机字符串
    • 1.2.5 控制大小写
    • 1.2.6 去除字符串首尾的空格
    • 1.2.7 生成CSV数据
    • 1.2.8 解析CSV数据
    • 1.2.9 获取中文字符串
    • 1.2.10 按指定函数分割字符串
    • 1.2.11 合并与分割字符串
    • 1.2.12 按照指定函数截取字符串
    • 1.2.13 【实战】生成可下载的CSV文件
    • 1.2.14 【实战】用Go运行Shell脚本程序
  • 1.3 数组和切片基础技巧
    • 1.3.1 数组和切片基础
    • 1.3.2 迭代处理数组
    • 1.3.3 从数组中删除元素
    • 1.3.4 将数组转换为字符串
    • 1.3.5 检查某个值是否在数组中
    • 1.3.6 查找一个元素在数组中的位置
    • 1.3.7 查找数组中最大值或最小值元素
    • 1.3.8 随机打乱数组
    • 1.3.9 删除数组中重复的元素
  • 1.4 数组高级技巧
    • 1.4.1 一维数组的排序
    • 1.4.2 二维数组的排序
    • 1.4.3 多维数组声明
    • 1.4.4 多维数组遍历
    • 1.4.5 多维数组的查询
    • 1.4.6 多维数组的修改
    • 1.4.7 三维数组生成器
    • 1.4.8 【实战】从数据库中获取数据并进行合并处理和导出
  • 1.5 map常见实战技巧
    • 1.5.1 map基础
    • 1.5.2 检查一个键是否在map中
    • 1.5.3 json与map互相转化
    • 1.5.4 map排序示例
    • 1.5.5 map高级使用技巧
    • 1.5.6 map排序技巧
    • 1.5.7【实战】从数据库中获取数据并导出特定的CSV文件
  • 1.6 结构体的使用技巧
    • 1.6.1 结构体基础
    • 1.6.2 结构体初始化
    • 1.6.3 结构体继承
    • 1.6.4 结构体组合
    • 1.6.5 匿名结构体
    • 1.6.6 结构体嵌套
    • 1.6.7 结构体字段标签
    • 1.6.8 Go语言面向对象编程
    • 1.6.9 【实战】模拟二维矢量移动小游戏
  • 1.7 接口常用技巧
    • 1.7.0 前言
    • 1.7.1 接口的赋值
    • 1.7.2 接口的查询
    • 1.7.3 接口的组合
    • 1.7.4 接口的常见应用
    • 1.7.5 接口使用注意事项
  • 1.8 Go语言模块管理
    • 1.8.1 Go语言模块管理
  • 1.9 通道实战技巧
    • 1.9.1 通道基础
    • 1.9.2 创建定时通知
    • 1.9.3 使用通道传送通道
    • 1.9.4 检查通道的长度和容量
    • 1.9.5 速率限制
  • 1.10 回顾和启示
    • 1.10.1 回顾和启示
  • 2.1 函数与指针技巧
    • 2.1.1 递归函数
    • 2.1.2 匿名变量和匿名函数
    • 2.1.3 指针
    • 2.1.4 函数的参数传递
    • 2.1.5 函数使用的常见注意事项
  • 2.2 反射应用技巧
    • 2.2.1 反射原理
    • 2.2.2 反射三大法则简介
  • 2.3 Go语言编译
    • 2.3.1 编译基础知识
    • 2.3.2 Go语言编译原理
    • 2.3.3 Go语言编译器入口
    • 2.3.4 编译器调试
  • 2.4 CGO编程技巧
    • 2.4.1 CGO基础使用
    • 2.4.2 CGO使用的问题和挑战
  • 2.5 错误和异常处理技巧
    • 2.5.1 错误和异常简介
    • 2.5.2 错误处理的技巧
    • 2.5.3 异常处理的技巧
  • 2.6 密码学算法技巧
    • 2.6.1 Hash算法
    • 2.6.2 对称与非对称加密算法
    • 2.6.3 椭圆曲线加密算法
    • 2.6.4 字符串编码与解码
  • 2.7 性能剖析与事件追踪
    • 2.7.1 pprof性能剖析
    • 2.7.2 trace事件追踪
  • 2.8 回顾和启示
    • 2.8.1 回顾和启示
  • 3.1 Go Web基础
    • 3.1.1 Go语言接收HTTP请求
    • 3.1.2 Go语言处理HTTP请求
  • 3.2 Go HTTP2编程
    • 3.2.1 HTTP简介
    • 3.2.2 Go HTTP2编程实例
  • 3.3 Go HTTP3编程
    • 3.3.1 HTTP3简介
    • 3.3.2 Go HTTP3编程实例
  • 3.4 Go Socket编程
    • 3.4.1 什么是Socket
    • 3.4.2 TCP Socket
    • 3.4.3 UDP Socket
    • 3.4.4 【实战】使用Socket开发简易聊天程序
  • 3.5 Go MySQL使用技巧
    • 3.5.1 Go使用MySQL
    • 3.5.2 MySQL常见ORM
  • 3.6 Go Redis使用技巧
    • 3.6.1 Go Redis常见处理技巧
    • 3.6.2 使用Go Redis实现排行榜功能
  • 3.7 Go gRPC使用
    • 3.7.1 什么是gRPC
    • 3.7.2 Go gRPC的使用
  • 3.8 【实战】使用gRPC开发一个简易分布式爬虫系统
    • 3.8.1 【实战】使用gRPC开发一个简易分布式爬虫系统
  • 3.9 回顾和启示
    • 3.9.1 回顾和启示
  • 4.1 并发编程基础
    • 4.1.1 并发编程基础
  • 4.2 计算机常见并发模型
    • 4.2.1 线程和锁
    • 4.2.2 演员模型
    • 4.2.3 通信顺序进程
  • 4.3 Go语言并发模型
    • 4.3.1 Go语言并发模型
  • 4.4 Go语言常见并发设计模式
    • 4.4.1 屏障模式
    • 4.4.2 未来模式
    • 4.4.3 管道模式
    • 4.4.4 扇出和扇入模式
    • 4.4.5 协程池模式
    • 4.4.6 发布-订阅模式
  • 4.5 同步常用技巧
    • 4.5.1 竞态
    • 4.5.2 互斥锁
    • 4.5.3 读写互斥锁
    • 4.5.4 只执行一次
    • 4.5.5 等待组
    • 4.5.6 竞态检测器
    • 4.5.7 并发安全字典
  • 4.6 goroutine使用技巧
    • 4.6.1 限制并发数量
    • 4.6.2 节拍器
    • 4.6.3 使用select多路复用
  • 4.7 【实战】开发一个并发任务系统
    • 4.7.1 【实战】开发一个并发任务系统
  • 4.8 回顾和启示
    • 4.8.1 回顾和启示
  • 5.1 分布式系统原理
    • 5.1.1 什么是分布式系统
    • 5.1.2 分布式系统的常见一致性算法
  • 5.2 负载均衡简介
    • 5.2.1 负载均衡简介
  • 5.3 常见负载均衡算法
    • 5.3.1 轮询调度算法
    • 5.3.2 随机算法
    • 5.3.3 一致性哈希算法
    • 5.3.4 键值范围算法
  • 5.4 分布式锁
    • 5.4.1 分布式锁简介
    • 5.4.2 基于MySQL数据库表实现分布式锁
    • 5.4.3 用ZooKeeper实现分布式锁
    • 5.4.4 使用Redis的SETNX实现分布式锁
    • 5.4.5 使用etcd实现分布式锁
    • 5.4.6 分布式锁的选择
  • 5.5 Go实现常见的分布式应用
    • 5.5.1 用Snowflake框架生成分布式ID
    • 5.5.2 Go语言实现Paxos一致性算法
  • 5.6 Go语言常见分布式框架
    • 5.6.1 Go Micro框架
    • 5.6.2 Consul框架
  • 5.7 回顾和启示
    • 5.7.1 回顾和启示
  • 6.1 秒杀系统简介
    • 6.1.1 高并发系统简介
    • 6.1.2 秒杀系统简介
  • 6.2 秒杀系统架构
    • 6.2.1 架构原则
    • 6.2.2 秒杀系统架构
  • 6.3 HTML静态页面开发
    • 6.3.1 秒杀页面设计
    • 6.3.2 秒杀页面静态化
    • 6.3.3 客户端限流
  • 6.4 服务端开发
    • 6.4.1 代理层设计
    • 6.4.2 应用层设计
    • 6.4.3 数据库层隔离
  • 6.5 压力测试
    • 6.5.1 压力测试
  • 6.6 回顾与启示
    • 6.6.1 回顾与启示
Powered by GitBook
On this page
  1. 2.5 错误和异常处理技巧

2.5.1 错误和异常简介

Previous2.4.2 CGO使用的问题和挑战Next2.5.2 错误处理的技巧

Last updated 3 years ago