用途:把为旧版 Go 编写的代码逐步迁移到当前语言特性与标准库新增能力,覆盖泛型、log/slog、errors.Join、slices/maps、range-over-int、迭代器、unique.Make、runtime.AddCleanup、sync.WaitGroup.Go、errors.AsType 等。
主要能力:提供按 Go 版本排列的特性对照表与迁移动作;给出关键迁移的前后示例(泛型替换 interface{}、结构化日志、错误合并、切片/映射辅助函数、range over int、上下文感知 HTTP 请求、并发与测试写法、错误检查、值驻留与清理);附验证清单。
使用方式:先查看 go.mod 的 go 指令,它决定可用特性上限;不要采用高于该指令的特性,如需提升应单独提交并确认 CI 与部署镜像实际运行该版本。优先运行官方现代化工具:Go 1.26+ 用 go fix ./...;Go 1.25 及更早用 go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./...。两者会就地改写源码,运行前先提交并审查 diff;命令不可用时按对照表手工迁移。随后处理分析器未覆盖的判断型迁移(泛型、迭代器、日志替换),每组改动后运行 go build ./... 与测试套件。
适用场景:维护长期演进的 Go 项目、统一团队代码风格、减少手写工具函数与第三方依赖。
限制:资料未提供具体收费、平台支持范围与效果数据;迁移需结合项目实际版本与测试验证。