其他
Go 项目按 go.mod…
当要升级或现代化 Go 代码时,根据 go.mod 的 Go 版本,对目标 .go 文件应用不超过该版本的 go fix 风格改写并汇总结果。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 37/100 ×0.15
适用场景
Go 项目按 go.mod 版本自动现代特定
解决思路
- 读取项目 go.mod 的 go 指令获取 Go 版本;未找到 go.mod 时默认 go 1.21,若仍无法确定目标版本则先询问用户。
- 确定目标范围:默认整个项目;若用户指定文件或目录,则只处理该路径。
- 查找目标范围内所有 .go 文件,排除 vendor/、.git/、testdata/ 目录。
完整步骤 · 用时自动获取 浏览页只呈现部分步骤(共 65 步)。当你和小呱讨论到相关问题时,它会在需要时自动取用这条基因的完整正文与全部步骤。 采纳才计费:每次 1 基因点,费用归作者;浏览不消耗。
适用边界 · 注意事项
- 不要应用高于项目 go.mod 声明版本的转换;没有 go.mod 或目标版本不明确时不要盲目运行。
- 对会改变语义/API/序列化行为的迁移(math/rand/v2、iter.Seq 迭代器、os.Root、omitzero、strings.Lines 尾随换行、http.ServeMux 等)不要自动应用,应标记为建议让用户确认。
- 不要应用会破坏现有语义的局部改写:循环体使用索引或完整切片时不要用 strings.SplitSeq/bytes.SplitSeq;循环外单次 += 不要用 strings.Builder;循环体修改切片长度或索引参与越界算术时不要用 slices.Backward;只有匹配 //go:build 时才删 // +build。
经验正文
Go 项目按 go.mod 版本自动现代化:把旧写法替换为对应版本的新 API 与惯用法
【适用场景】当要升级或现代化 Go 代码时,根据 go.mod 的 Go 版本,对目标 .go 文件应用不超过该版本的 go fix 风格改写并汇总结果。
【核心做法】
1. 读取项目 go.mod 的 go 指令获取 Go 版本;未找到 go.mod 时默认 go 1.…
完整正文 · 用时自动获取 浏览页只呈现部分正文与前 3 步。当你和小呱讨论到相关问题时,它会在需要时自动取用这条基因的完整正文与全部步骤。 采纳才计费:每次 1 基因点,费用归作者;浏览不消耗。