Go问答技术文章
-
Go 标准库 uuid.Parse 接受大小写等多种文本形式,但解析后保存的是 16 字节 UUID 值,String 会统一输出 RFC 9562 定义的小写连字符形式。本文说明比较、存储、日志、签名与原文保留边界。245 收藏 -
Golang · Go问答 | 1星期前 | 并发安全 · goroutine · Go问答 · Go结构化并发 runtime/secret并发读取 secret.Do goroutine Go密钥生命周期 WaitGroup敏感数据
runtime/secret 会让作用域内新建的 goroutine 继承秘密模式,但不会替你同步共享切片。本文用结构化并发说明密钥只读共享、worker 独立状态、公开结果复制、取消等待与平台降级的正确边界。107 收藏 -
解释 Go 实验性 runtime/secret.Do 为什么不能让从回调返回的 string 自动被擦除,并给出把敏感计算收口、由调用者预分配结果空间和发布检查的做法。211 收藏 -
Go runtime/secret 的职责是及时擦除密码学调用树中的寄存器、栈和部分堆临时数据,缩短秘密材料在进程内存中的残留时间。它不提供密钥托管、访问控制、版本轮换、审计、撤销或恢复,因此应与 KMS/HSM 等密钥管理能力组合,而不是替代它们。290 收藏 -
go fix 负责源码现代化修复,gofmt 负责标准格式化。本文从执行顺序、分析器依赖和构建配置三个角度解释连续运行产生不同 diff 的原因,并给出可重复的审阅流程。196 收藏 -
Go 1.26+ 的声明式迁移如果没有改写调用点,最常见原因是旧 API 声明前缺少 //go:fix inline。本文同时说明指令位置、适用对象、安全边界,以及复杂自定义 Analyzer 必须提供 SuggestedFixes、通过 unitchecker 与 -fixtool 接入的完整排查方法。157 收藏 -
go fix 的修改范围由命令末尾的包模式决定。本文用当前包、精确目录、子树模式和完整导入路径说明怎样缩小分析集合,并结合 go list、-C、-diff、fixer 开关与构建标签给出可审查的小批量改写流程。443 收藏 -
pkg.go.dev API 分页同步遇到 nextPageToken 不可继续使用时,应固定原请求参数、回到第一页并用稳定键幂等合并,避免漏数据和无限重试。485 收藏 -
本地能下载私有 Go 模块,pkg.go.dev API 仍可能返回 not found。本文解释公共索引边界、GOPRIVATE 的真实作用,并给出私有代理与本地排查方案。368 收藏 -
pkg.go.dev API 的 latest 代表索引已识别的最新模块版本,不等于仓库默认分支或任意 Git 标签。本文从语义化标签、子模块前缀、主版本路径和索引传播四层排查差异,并给出最小验证命令。481 收藏 -
Go 浮点计算改成 SIMD 后,末位差异通常来自归约顺序或 FMA 舍入路径变化。本文用一次真实排障思路说明怎样建立标量基线、比较硬件与模拟路径,并结合绝对误差、相对误差、ULP 和业务不变量决定结果能否接受。139 收藏 -
archsimd 目标实现是否被选中取决于 GOEXPERIMENT=simd、目标 GOARCH、文件名隐式约束和显式 //go:build 的共同结果,运行时 CPU 特性检查不会改变已编译文件。354 收藏 -
Go 1.27 的可移植 simd 包在 CPU 不支持 SIMD 时会使用纯 Go 仿真实现;部分能力不足时默认降到可用向量宽度或仿真,但强制宽度可能触发 panic。103 收藏 -
Go 1.27 的 goroutineleak 剖析没有业务标签时,仍可从永久阻塞的操作栈回溯到调用者和 goroutine 创建点。本文给出 pprof 接入、采集、定位与修复方法。102 收藏 -
短任务已经返回并不代表 goroutine 已退出。本文用 goroutineleak 和 pprof 拆解结果发送、提前返回、取消与排空之间的生命周期关系,给出可落地的修复清单。372 收藏