Go语言技术文章
-
SystemCertPool 的跨系统差异来自系统信任、进程环境与 Go 版本,不能用 Subjects 数量直接判断可信范围。本文给出不联网的最小复现程序,固定证书链、名称、用途和时间,对照系统信任与显式根,并解释错误与生命周期限制。212 收藏 -
Go gzip.Reader 默认合并多成员内容,Multistream(false) 在当前成员结束时停止。用完整内存示例比较两种读取方式,说明 Reset 复位、ByteReader 边界和资源关闭责任。211 收藏 -
Go pprof 堆 profile 与实时对象数量不同,常见原因是指标单位、存量与累计口径、GC 时点和采样估算不同。本文用两份本地快照示例说明如何保留对象、显式选择指标,并避免误判泄漏。211 收藏 -
通过 app 与 labelkit 原创示例说明 Go workspace 的 use、模块路径与工作区发现规则,并区分 replace、go work sync 和独立发布依赖,避免本地联调成功掩盖 go.mod 缺口。211 收藏 -
Go jsontext.Encoder.WriteToken 适合按 token 增量构造合法 JSON。本文用对象、数组和字段值示例说明调用顺序、语法错误边界,以及 WriteToken 与 WriteValue 的选择。211 收藏 -
Go Humanize 的 ParseBytes 可以把 42 MB、42 mib 等用户输入解析为字节数。本文说明十进制与二进制单位的差异、非法输入和 uint64 溢出处理,以及何时改用 ParseBigBytes。211 收藏 -
Go CEL 的 cel.DynType 只放宽静态类型检查,不会替运行时输入自动转换类型。本文结合动态字段、操作符重载、类型守卫和短路条件,说明为什么 Compile 成功后 Eval 仍可能报错。211 收藏 -
以Go roaring v1.9.4演示AddRange加入连续整数,说明半开区间、重叠去重、uint32最大值端点与闭区间转换,并提供外部范围检查封装及小集合实验。211 收藏 -
ResponseController 只负责控制 HTTP 响应,受限文件读取应交给 Go 1.24 的 os.OpenRoot。本文按一次 HTTP 文件接口故障复盘,给出安全读取、响应控制、错误处理与生命周期边界。211 收藏 -
Go go list -export -json 会为包提供 Export 绝对路径和 BuildID。本文说明如何把这两个字段交给构建分析器,并解释 -deps、-e、-find 与编译缓存路径的边界。211 收藏 -
解释 go/printer.Config.Fprint 如何集中控制 Mode、Tabwidth 和 Indent,并区分自定义源码输出与 gofmt 风格格式化的边界。211 收藏 -
Go 测试里的 ticker 泄漏,常见根因不是 Stop 单独缺失,而是 goroutine 一直阻塞在不会自动关闭的 ticker.C 上。本文用 done、Stop 和 WaitGroup 给出完整收尾方式。210 收藏 -
Go bytes.Cut 会围绕首个分隔符返回 before、after 和 found 三个结果。本文用请求头、键值文本等场景说明未命中时的返回边界,以及返回切片与原始字节存储共享时何时需要 bytes.Clone。210 收藏 -
Go INI 可以把文件、[]byte 和 Reader 作为多个配置源按顺序合并,后加载源覆盖同名键。本文用默认配置、环境覆盖和运行时字节配置说明优先级写法,以及 Loose、ShortCircuit、Append 的选型边界。210 收藏 -
对比 go-diff 的语义清理与效率清理,说明阅读体验、编辑成本和 DiffEditCost 的区别,并用独立副本及文本重建示例解释选择与改造方法。210 收藏