- 第一优先级
- 官方文档
- 环境部署
- 环境搭建及编译器设置
- go 语言基础
- 变量和常量(变量声明, 常量声明, 常量计数器 - iota)
- 基本数据类型(int, float, bool, string)
- 运算符(算数运算, 关系运算, 逻辑运算, 位运算)
- 格式化输出和捕获输入(fmt 模块的使用)
- 流程控制(if, for, switch, goto, break, continue)
- Array - 数组 (定长, 相同元素, 元素可变, 值类型)
- Slice - 切片(创建, 深拷贝, 追加和删除, 排序, 引用类型)
- map - 映射(创建, 初始化, 遍历, 删除)
- slice和map混合用法(元素为 map 的切片, 值为切片的 map)
- func(函数的定义, 闭包)
- 指针和声明指针( 指针的定义, new 和 make)
- struct(声明, 构造函数, 结构体方法(值接收和指针接收), 嵌套, 继承)
- package(关于包的基础定义)
- interface(声明, 空接口的使用, 类型断言, 两种结构体方法实现接口的区别)
- 反射(反射调用方法, TypeOf 和 ValueOf 的使用)
- goroutine(go语言并发, 锁的使用, 安全版map)
- channel(waitgroup 的使用, select 多路复用, 单向通道)
- 单元测试和性能测试
- 常用库记录
-
发送HTTP请求
net/http -
编码/解码
json,gjson,yaml -
配置文件管理
viper -
处理字符串
strings (io.Reader, 拼接/分隔/替换, Trim, 索引相关, 统计相关等用法) -
解析命令行参数
flag, kingpin -
时间、日期相关
time -
文件操作
os.Open, bufio, ioutil -
规则引擎
govaluate - tcp, udp
- 操作数据库
- unicode
- 日志库(log, zap)
- rate(令牌桶/限流)
- 补充
- 引用类型和值类型
- return 和 defer
- panic 和 recover
- 自定义类型和类型别名
- 测试补充: 代码示例
- 实战练习
- 练习 1 - 书籍管理系统(函数版)
- 练习 2 - 书籍管理系统进阶(面向对象)
- 日志库
- 配置文件
- channel练习 - 生产者和消费者