Go 学习笔记与示例代码整理。
| 目录/文件 | 说明 |
|---|---|
| golang-learn | Go 基础语法学习:枚举、切片、Map、Set、链表、defer、时间函数等 |
| go基础问题 | Go 常见基础问题整理(20+ 个专题) |
| defer | defer 语句用法示例 |
| slice | 切片操作与底层原理 |
| struct | 结构体详解、匿名组合、unsafe pointer |
| emum | 枚举(iota)用法 |
| context | context 包用法与原理 |
| string-byte-rune | string / byte / rune 类型转换 |
| func-Params | 函数参数传递 |
| reflect-and-interface | 反射与接口 |
| 位操作 | 位运算操作 |
| Fixnum_bit_range | 定点数位域范围 |
| 字符串零拷贝 | 字符串零拷贝技巧 |
| break_demo.go | break/continue 用法 |
| generate-stack.go | 栈生成示例 |
| panic-and-recover | panic 与 recover 处理 |
| select-sum | select 语句示例 |
| 目录/文件 | 说明 |
|---|---|
| go并发操作 | Go 并发操作综合示例 |
| channel | channel 用法、panic/deadlock、select |
| go-for-select | for + select 模式 |
| Mutex | 互斥锁使用 |
| wait_group | WaitGroup 用法 |
| share-memory-and-chan | 共享内存 vs channel 通信 |
| map-concurrent-process | Map 并发读写 |
| producer-and-consumer.go | 生产者-消费者模式 |
| sync_wait.go | sync.WaitGroup 示例 |
| syncmap.go | sync.Map 示例 |
| ticker.go | Ticker 定时器示例 |
| golang-lib-use/sync.Atomic.go | sync/atomic 原子操作 |
| golang-lib-use/sync.Map源码.go | sync.Map 源码分析 |
| golang-lib-use/sync.Once.go | sync.Once 用法 |
| golang-lib-use/sync.Pool.go | sync.Pool 对象池 |
| 目录/文件 | 说明 |
|---|---|
| 网络编程 | TCP socket、TCP 粘包处理 |
| go-web | Gin Web 框架示例 |
| http表单 | HTTP 表单处理 |
| mux_router | Gorilla Mux 路由 |
| websocket | WebSocket 示例 |
| grpc-example | gRPC 示例 |
| go-socket.io-example | Socket.IO 示例 |
| udp-server | UDP 服务器 |
| proxy | 代理服务器 |
| 流式代理整理 | HTTP/SSE/WebSocket 流式代理 |
| HttpResetResponseBody | HTTP 重置响应体 |
| gin_middleware_modify_response.go | Gin 中间件修改响应 |
| rewrite-res-body-under-gin-middleware | Gin 中间件重写响应体 |
| ip-ping | IP Ping 工具 |
| nginx-weighted-round-robin | Nginx 加权轮询算法 |
| static-app | 静态文件服务 |
| backend_demo.go | 后端服务示例 |
| 目录/文件 | 说明 |
|---|---|
| 文件处理 | 文件读写、多种读取方式、gzip 压缩 |
| IO.reader | io.Reader 用法 |
| IO.writer | io.Writer 用法 |
| ioutilpackage | ioutil 包用法 |
| io-cache | IO 缓存处理 |
| file-upload-download | 文件上传下载 |
| file-watcher | 文件监听 |
| file_chunk_upload_service | 分块上传服务 |
| 断点续传 | 断点续传实现 |
| inputReader-read-data-from-control | 从控制台读取数据 |
| bigfile.go | 大文件处理 |
| toml-file | TOML 文件解析 |
| utf82gbk | UTF-8 与 GBK 编码转换 |
| Os.signal | os/signal 系统信号处理 |
| Os.user | os/user 用户信息 |
| 目录/文件 | 说明 |
|---|---|
| json | JSON 编解码 |
| jsonbenchmark | JSON 库性能对比 |
| json2string.go | JSON 转字符串 |
| test_omitempty_of_json.go | JSON omitempty 测试 |
| fastjson.go | fastjson 库使用 |
| sonic.demo.go | sonic JSON 库使用 |
| xmlDemo | XML 解析 |
| excel.demo | Excel 文件处理 |
| excel_gen.go | Excel 生成 |
| PDF 处理 | |
| pdf2word | PDF 转 Word |
| ORC文件创建 | ORC 文件创建 |
| image-process | 图片处理 |
| decodede.go | 解码示例 |
| han.go | 汉字处理 |
| regexp | 正则表达式 |
| ahocorasick_demo.go | Aho-Corasick 多模式字符串匹配 |
| template_demo.go | Go template 模板 |
| captche.go | 验证码生成 |
| 目录/文件 | 说明 |
|---|---|
| 数据结构和算法 | 哈希表、LRU、LeetCode、排序算法 |
| list | 链表 |
| ring | 环形链表 |
| golang-sort | 排序算法 |
| map-value-is-struct | Map value 为 struct 的注意点 |
| use_sort_reverse_slice.go | 切片反向排序 |
| 目录/文件 | 说明 |
|---|---|
| golang-oop-idea | Go 面向对象思想总结 |
| inherit | 结构体继承 |
| interface-and-struct-method | 接口与结构体方法 |
| interface_inherit | 接口继承 |
| polymorphic | 多态实现 |
| 接口解耦 | 接口解耦设计 |
| func_option_design | 函数式选项设计模式 |
| golang-lib-use/go-option-design | Option 设计模式 |
| go-close-func | 闭包函数 |
| 目录/文件 | 说明 |
|---|---|
| mysql | MySQL 操作 |
| go-etcd | etcd 客户端使用 |
| etcdwrap | etcd 封装 |
| go-local-cache | 本地缓存(go-cache) |
| 目录/文件 | 说明 |
|---|---|
| golang-gc | Go GC 分析 |
| pprof | pprof 性能分析工具 |
| pprof.analysis | pprof 分析结果 |
| cpu.pprof | CPU profile 文件 |
| 目录/文件 | 说明 |
|---|---|
| golang-lib-use | 常用库使用:gin-jwt、filetype、uber/zap、flag 等 |
| cgo | CGO 使用示例 |
| go-cmd | os/exec 执行命令 |
| cron.go | 定时任务(robfig/cron) |
| viper.go | Viper 配置文件读取 |
| go_logrus | logrus 日志库 |
| logger | 日志封装 |
| tequila | Tequila 框架示例 |
| tika-demo | Apache Tika 文件解析 |
| gimli | Gimli 库示例 |
| ua.go | User-Agent 解析 |
| config.yaml | 配置文件示例 |
| 目录/文件 | 说明 |
|---|---|
| 技术文档 | Docker、Nginx、Redis、MySQL、Kafka、Zookeeper、GC、HTTP、Linux 等技术文档 |
| doc | 文档示例 |
| docconve | 文档转换 |
| 目录/文件 | 说明 |
|---|---|
| docker | Docker 相关示例 |
| 目录/文件 | 说明 |
|---|---|
| LLM | 大语言模型相关代码示例 |
| 目录/文件 | 说明 |
|---|---|
| practice | 综合练习 |
| demo | 综合示例 |
| program_demo | 程序示例 |
| work-test | 工作测试用例 |
| golang-learn/switch-and-select | switch 和 select 综合示例 |