gopls modernize

modernize 模块提供了一个 现代化语法分析器,现代化:使用新式语法简化代码

此分析器报告了通过使用 Go 的更现代功能来简化和阐明现有代码的机会,例如:

  • 将 if/else 条件赋值替换为对 go1.21 中添加的内置 min 或 max 函数的调用;

  • 替换 sort。Slice(x, func(i, j int) bool) { return s[i] < s[j] }。排序,在 go1.21 中添加;

  • 将 interface{} 替换为 go1.18 中添加的 'any' 类型;

  • 将 append([]T(nil), s...) 替换为切片。克隆或切片。Concat(s),在 go1.21 中添加;

  • 将 m[k]=v 地图更新的循环替换为 go1.21 中新增的 maps 包中的 Collect、Copy、Clone 或 Insert 函数之一;

  • 替换 []byte(fmt.冲刺...由 fmt.Appendf(nil, ...), 在 go1.19 中添加;

  • 替换上下文的使用。在 go1.24 中添加的 t.Context 测试中的 WithCancel;

  • 将 Constructs 上的 omitEmpty 替换为 omitZero,在 go1.24 中添加;

  • 将 append(s[:i], s[i+1]...) 替换为切片。Delete(s, i, i+1),在 go1.21 中添加

  • 将 3 子句替换为 i := 0;i < n;i++ {} 循环 for i := range n {},在 go1.22 中添加;

  • 替换 Split in "for range strings.go1.24 更高效的 SplitSeq 的 Split(...)";

  • 要批量应用所有现代化修复,您可以使用以下命令:

bash 复制代码
$ go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -test ./...

如果该工具警告有冲突的修复,您可能需要多次运行它,直到它干净地应用了所有修复。此命令不是官方支持的界面,将来可能会更改。

参考:

  1. pkg.go.dev/golang.org/...
相关推荐
浮尘笔记3 分钟前
Docker中安装Kafka以及基本配置和用法、踩坑记录
后端·docker·容器·kafka·php
IT_陈寒8 分钟前
Python的异步陷阱:我竟然被await坑了一整天
前端·人工智能·后端
weixin_4080996718 分钟前
【保姆级教程】易语言调用 OCR 文字识别 API(从0到1完整实战 + 示例源码)
图像处理·人工智能·后端·ocr·api·文字识别·易语言
一定要AK22 分钟前
SpringBoot 教程 IDEA 版
spring boot·后端·intellij-idea
weixin_4080996732 分钟前
【保姆级教程】按键精灵调用 OCR 文字识别 API(从0到1完整实战 + 可运行脚本)
java·前端·人工智能·后端·ocr·api·按键精灵
Traving Yu43 分钟前
Spring源码与框架原理
java·后端·spring
王家视频教程图书馆1 小时前
rust 写gui 程序 最流行的是哪个
开发语言·后端·rust
好大哥呀1 小时前
如何在Spring Boot中配置数据库连接?
数据库·spring boot·后端
老神在在0011 小时前
企业级 SpringBoot 后端通用开发规范|统一响应 + 敏感字段加密
spring boot·后端·状态模式