Go语言技术文章
-
go fix 负责源码现代化修复,gofmt 负责标准格式化。本文从执行顺序、分析器依赖和构建配置三个角度解释连续运行产生不同 diff 的原因,并给出可重复的审阅流程。196 收藏 -
在 CI 中使用 go fix -diff 可以只输出统一差异而不改写源文件:无建议时退出 0,有待应用差异时退出非零。本文给出最小门禁脚本、保留补丁时的 pipefail 写法、包范围拆分方案和故障判定清单。458 收藏 -
Go 1.26+ 的声明式迁移如果没有改写调用点,最常见原因是旧 API 声明前缺少 //go:fix inline。本文同时说明指令位置、适用对象、安全边界,以及复杂自定义 Analyzer 必须提供 SuggestedFixes、通过 unitchecker 与 -fixtool 接入的完整排查方法。157 收藏 -
用 Go 1.26 的 //go:fix inline 为旧 API 提供可迁移的替代入口,演示函数、常量、类型别名的写法,以及副作用、defer、测试和版本门槛等复核边界。363 收藏 -
go fix 的修改范围由命令末尾的包模式决定。本文用当前包、精确目录、子树模式和完整导入路径说明怎样缩小分析集合,并结合 go list、-C、-diff、fixer 开关与构建标签给出可审查的小批量改写流程。443 收藏 -
Go 1.26 重写 go fix,以 modernizer 和 Go analysis 框架批量改写受支持的旧式标准库与语言用法。本文给出 fixer 盘点、-diff 预览、分批落盘、多平台覆盖和测试审查清单,并说明它不会自动迁移所有废弃 API。462 收藏 -
pkg.go.dev API 分页同步遇到 nextPageToken 不可继续使用时,应固定原请求参数、回到第一页并用稳定键幂等合并,避免漏数据和无限重试。485 收藏 -
持续同步 pkg.go.dev API 时,不要把 nextPageToken 当永久断点。本文用 Go 完整消费分页、稳定去重、有限重试,并在全量成功后原子替换本地索引。466 收藏 -
本地能下载私有 Go 模块,pkg.go.dev API 仍可能返回 not found。本文解释公共索引边界、GOPRIVATE 的真实作用,并给出私有代理与本地排查方案。368 收藏 -
pkg.go.dev v1 API 默认不返回完整文档与许可证列表。本文用 Go 构建批量汇总工具,说明 doc、licenses、module、version 参数,归并可再分发许可与文档状态,并处理路径歧义、429 限流和人工复核边界。136 收藏 -
pkg.go.dev API 的 latest 代表索引已识别的最新模块版本,不等于仓库默认分支或任意 Git 标签。本文从语义化标签、子模块前缀、主版本路径和索引传播四层排查差异,并给出最小验证命令。481 收藏 -
pkg.go.dev 的正式 JSON API 可把 Go 包导入路径解析为 modulePath,再分页读取该模块的版本集合。本文给出 curl 与 Go 标准库实现,并说明路径歧义、跨主版本、伪版本、撤回标记、分页令牌和限流的处理方法。394 收藏 -
Go 浮点计算改成 SIMD 后,末位差异通常来自归约顺序或 FMA 舍入路径变化。本文用一次真实排障思路说明怎样建立标量基线、比较硬件与模拟路径,并结合绝对误差、相对误差、ULP 和业务不变量决定结果能否接受。139 收藏 -
用 Go archsimd 实现 16 字节查找,拆解 amd64 的 PermuteOrZero 与 arm64/wasm 的 LookupOrZero 差异,并补齐构建标签、尾部处理和能力边界。414 收藏 -
archsimd 目标实现是否被选中取决于 GOEXPERIMENT=simd、目标 GOARCH、文件名隐式约束和显式 //go:build 的共同结果,运行时 CPU 特性检查不会改变已编译文件。354 收藏