Go教程技术文章
-
Go 1.27 为 go doc 增加 package@version 查询形式。本文说明如何查看指定依赖版本的 API,并区分 go.mod、go list 与文档查询的职责。193 收藏 -
用 Checker v2 在 Go 结构体标签中组合 trim、lower、required、email 和跨字段规则,让请求数据先清洗再校验,并统一输出结构化错误。299 收藏 -
Golang · Go教程 | 2星期前 | 标准库 · 配置管理 · 错误处理 · 并发编程 · Go教程 · Go 并发初始化 共享配置 sync.OnceValue sync.OnceValues
Go 1.21+ 可用 sync.OnceValues 把共享配置与初始化错误作为一对结果缓存,避免 sync.Once 配合外部变量造成分散状态。本文通过可测试的 ConfigProvider 展示并发只加载一次、错误传播及不适合自动重试的边界。482 收藏 -
通过一个可运行的 Go 内存索引示例,讲清 RWMutex 的读写边界、不可变条目约定、写前准备、读快照、整表替换,以及竞态检测和基准测试方法。187 收藏 -
Go Context 适合携带 trace ID、请求来源等请求级元数据,不适合隐藏订单号、分页条件等业务参数。本文用类型安全的 WithValue 写法、显式 API 参数和取消传播示例说明边界。263 收藏 -
Golang · Go教程 | 2星期前 | goroutine · Context · Go教程 · 批处理 · 批处理 Timer WithTimeout Go context WithCancelCause 父子取消链
本文用 root、batch、job 三层 Context 组织批处理生命周期,演示系统信号、整批失败和单任务超时的传播边界,并说明如何及时调用 CancelFunc、停止重试 Timer 与 Ticker。441 收藏 -
从 HTTP Handler 取出请求上下文,沿数据库查询和下游 HTTP 调用继续传递截止时间,说明 QueryContext、NewRequestWithContext、错误判断与资源清理的边界。336 收藏 -
Golang · Go教程 | 2星期前 | channel · select · Context · 并发编程 · Go教程 · context取消 time.NewTimer goroutine退出 Go select channel超时
本文给出一个可复用的 Go select 写法,同时监听任务结果、局部超时和上游取消信号,并解释缓冲结果通道、派生 Context、CancelFunc、ctx.Err、计时器释放及多个 case 同时就绪时的处理边界。250 收藏 -
Golang · Go教程 | 2星期前 | channel · Context · Go教程 · Channel关闭 context取消 发送方关闭 Go数据管道 Go pipeline 多阶段并发
本文实现一个源阶段、转换阶段、过滤阶段和汇聚端组成的 Go 数据管道。每个阶段创建、发送并关闭自己的输出 Channel,下游只接收;同时用 context 处理提前结束,并说明多 worker 阶段如何等待全部发送完成后单点关闭。492 收藏 -
本文用一个多生产者、多消费者示例说明如何把固定容量的 Go Channel 作为排队上限:缓冲区满时生产者自然阻塞,并通过方向约束、context 取消、WaitGroup 和单点关闭保证生命周期安全。248 收藏 -
Golang · Go教程 | 2星期前 | errgroup · goroutine · 错误处理 · go · Context · 并发调用 错误传播 SetLimit context取消 WithContext Go errgroup
使用 errgroup.WithContext 可以并发调用多个独立依赖,在首个非空错误出现时取消同组任务,并由 Wait 统一回收。本文给出结果收集、限流与延迟验证写法。422 收藏 -
用固定 worker、带容量的 jobs channel、可取消提交和 WaitGroup 收尾,把 Go 中每条输入都启动 goroutine 的无界并发改造成可解释的工作池。350 收藏 -
Go 后台任务不应只用一条裸 goroutine 启动。本文实现 Start、Cancel、Wait 三段式生命周期,统一任务所有权、取消原因、退出等待、超时关闭和错误返回,并说明适用边界与测试要点。189 收藏 -
用 Go 标准库统一处理 JSON 未知字段、大整数与金额精度、RFC3339 时间,并给出可复用的解码入口和边界检查。297 收藏 -
Golang · Go教程 | 2星期前 | JSON · go · 泛型 · api设计 · encoding/json UnmarshalJSON 可选字段 零值 Go JSON处理 PATCH接口
Go 的 PATCH 接口如何区分字段缺失、null 与零值?本文用泛型 Optional[T] 保存 Set、Valid、Value 三态,完成解码、校验、更新与测试。306 收藏