分析代码以进行语法更新。
语法更新帮助您将 Go 代码迁移到新版本的语言。 当有新的 Go 版本可用时,GoLand 会分析您的代码并建议使用现代语言和标准库特性的更新。
语法更新作为检查项实现。 每个检查都会报告特定的过时结构,并提供一个快速修复,将代码重写为新的形式。 这些修复设计为安全且保持行为一致,因此您可以单独或批量应用它们。
您可以利用语法更新对现有代码库进行现代化,并保持与最新 Go 语言演进同步。
应用语法更新
当有语法更新可用时,GoLand 会在编辑器中高亮显示受影响的代码。 您可以借助意图操作菜单应用修复,也可以在更大的范围内运行检查,一次性更新多个文件。
默认情况下,这些更新会用蓝色下划线高亮,并用语言更新图标( )标记。
使用快速修复应用语法更新
将文本光标置于您想要修改的代码元素处。 然后点击灯泡图标(或按 Alt+Enter )打开建议列表。
意图预览自动打开。 如果一个意图很复杂且无法生成预览,您将看到意图描述。 在建议列表上悬停查看可用意图的预览。
按下 Enter 或点击列表中的意图以应用它。
有关快速修复的更多信息,请参阅 意图操作。

语法更新使用名为 语法更新 的专用检查严重级别。 您可以像配置其他检查一样在设置中配置该级别。
更改语法更新的严重级别
按下 Ctrl+Alt+S 打开设置,然后选择 。
请导航至 。
从列表中选择一个检查。
从 严重性(V) 列表中选择一个新的严重级别。
从 编辑器中的高亮显示 列表中,选择您想在编辑器中用来突出显示代码片段的样式。
应用更改并关闭对话框。
修改后的检查现在将在选定的配置文件中具有新的严重级别。
有关检查的更多信息,请参阅 代码检查。

应用快速修复后,GoLand 会建议您分析代码以查找其他可以应用语法更新的位置。
分析代码以查找其他语法更新
点击 分析代码以进行语法更新。
在 指定语法更新范围 对话框中,选择作用域并点击 分析。

或者,您可以从 go.mod 运行语法更新的代码分析。
从 go.mod 运行分析
在 go.mod 中,点击 分析代码以进行语法更新。 点击 显示 Go 的高亮内容 查看新语言的概览。

您可以对单个出现位置应用快速修复,也可以一次性应用所有可用修复。
应用语法更新快速修复
Go 1.26 中支持的语法更新
Go 1.26 引入了多项语言和 API 改进。 GoLand 提供专用的检查,帮助您自动应用这些更改。
使用 new(expr) 创建指针
Go 1.26 扩展了 new 内置函数,使其不仅能接受类型名,还能接受表达式。 这样您可以直接通过表达式创建指针,无需引入临时变量。
此更改还消除了仅为创建指针而存在的辅助函数(如 proto.Int64()、 proto.String() 或 proto.Bool() )的需要。
之前:
之后:
GoLand 提供 使用 new() 创建指针检查。 它会检测仅为取地址而创建临时变量的情况,并建议 替换为 new() 快速修复。
使用 errors.AsType 类型安全地解包错误
Go 1.26 引入了 errors.AsType ,这是 errors.As 的泛型类型安全替代方案。
errors.As 函数需手动处理指针,若目标类型不正确会导致 panic。
有问题的用法:
errors.AsType 能自动推断目标类型并返回带类型的结果。 它无需依赖调用者准备的指针,并且不会因目标类型不匹配而产生 panic。
使用 errors.AsType:
GoLand 提供 使用 errors.AsType 类型安全地解包错误检查。 它会报告可以替换的 errors.As 用法并提供 替换为 errors.AsType. 快速修复。
