Go语言技术文章
-
用单槽触发缓冲和单 worker 设计 Go time.Ticker 周期任务,避免慢任务重叠执行,同时保留一次下一轮触发,并说明取消、告警与可靠队列边界。110 收藏 -
Go 中用 sync/atomic 保护变量时,若另一条路径仍然普通读写,同一地址依旧可能产生数据竞争。本文给出按访问清单定位、统一同步模型、迁移字段、检查边界和 race 回归的修复步骤。289 收藏 -
Go sync.Pool取回旧对象时,问题通常来自复用对象没有建立完整的初始化协议。本文从Get后的重置、Put前的所有权检查和并发排查三个方面说明如何消除残留状态。327 收藏 -
Go append 是否改到原切片,关键看两个切片是否共享底层数组以及剩余容量。本文用 len、cap、三索引切片和 slices.Clone 给出判断与隔离方法。407 收藏 -
讲清 Go time.Timer 复用时 Stop 返回值、旧语义排空 C 通道和 Go 1.23 新计时器语义的差异,并给出单一所有者的安全模板。469 收藏 -
Go 的 text/template 与 html/template API 很像,但输出边界不同:日志和邮件纯文本使用 text/template,浏览器 HTML 使用 html/template。本文用一个最小渲染项目对比普通文本、HTML 文本节点和 href 属性中的转义结果,并说明 template.HTML 的信任边界。275 收藏 -
Go copy返回值偏小时,先看目标切片的len而不是cap。本文用代码和表格说明copy的可见范围、容量扩展方式、重叠复制与空切片边界。246 收藏 -
围绕 Go errors.As 讲清自定义错误类型、错误包装链、Unwrap 和目标指针的配合方式,帮助业务层按稳定字段分层处理错误而不是比较易变的文本。471 收藏 -
Go errors.Join适合把多个清理或批处理失败原因合并为一个error返回,同时保留errors.Is和errors.As的可判定链。本文用资源关闭场景说明nil处理、错误遍历、上下文包装和兼容边界。459 收藏 -
从并发读写 panic 的调用关系入手,比较 map 加 RWMutex、sync.Map 和单协程所有权三种替代结构,给出迁移代码与回归检查边界。108 收藏 -
Golang · Go教程 | 6天前 | 命令行工具 · Go教程 · flag.NewFlagSet ContinueOnError Go flag.FlagSet Go 子命令 Go 命令行参数解析
用 Go flag.FlagSet 为 serve、export 等子命令隔离参数、帮助和错误输出,掌握 ContinueOnError、SetOutput、Args 与位置参数的组织边界。355 收藏 -
sort.Slice 不会替你校验 less 比较器是否构成严格弱序。本文从异常结果、传递性、多字段排序、稳定排序和测试清单说明如何修复比较器。404 收藏 -
讲清 Go os/exec 中 Cmd.Dir、cmd.Environ 和 Env 的配置顺序,并用独立缓冲区保存 stdout、stderr,区分启动失败与 ExitError。395 收藏 -
解释 Go crypto/rand.Read 的完整填充保证,并用 io.ReadFull 处理自定义 Reader 或通用 io.Reader 的短读,避免把不足字节的数据误当成完整令牌。351 收藏 -
通过值接收者、指针接收者和 reflect.Type.NumMethod 的小实验,解释 Go 方法集如何影响接口实现判断,并给出编译期断言与边界检查方法。491 收藏