GoLand 2025.2 Help

代码检查

在 GoLand 中,提供了一组代码检查功能,用于在编译项目前检测并修复项目中的异常代码。 IDE 可以发现并高亮显示各种问题,定位无效代码、查找可能的 bug、拼写问题,并优化整体代码结构。

检查可以扫描项目中的所有项目文件,也可以仅扫描特定的 范围 (例如,仅在生产代码或已修改文件中)。

每个检查都有一个 严重性级别—— 问题会对代码产生多大影响。 编辑器中会以不同方式高亮显示不同的严重性,方便您快速区分严重问题和次要问题。 GoLand 提供了一组预定义的严重性级别,并允许您自定义级别。

检查及其设置按 配置文件 分类管理。 每个配置文件包含已启用的检查信息、检查的文件范围以及对应的严重性级别。

访问所有可用的检查及其设置

  • 设置 对话框(Ctrl+Alt+S )中,转到 编辑器  |  检查

    您也可以按下 Ctrl+Alt+Shift+H ,在弹出窗口中选择 配置检查

    检查及其设置列表

使用 筛选图标 筛选检查列表。 例如,您可以按严重性或语言筛选检查。

数据流分析

数据流分析(DFA)是一种用于理解程序中数据流动情况的方法。 将程序想象成一个由多个点组成的地图,每个点代表代码的一部分(如语句或指令)。 这些点通过连线连接,表示程序运行时的执行路径。 在 GoLand 中,数据流分析会分析这张地图来检查代码。

DFA 检查及其设置列表

nil 解引用的数据流分析

nil 指针解引用是 Go 中一种常见错误。 它可能在生产系统中引发意外的 panic、崩溃或死锁。 常见原因包括访问 nil 指针的字段或向 nil 通道写入数据。

GoLand 使用静态代码分析检测 nil 解引用问题。 标准的 nil 解引用检查在单个函数中工作(过程内分析),可捕捉简单情况。

当 nil 值跨函数、文件或包传播时,会出现更复杂的问题。 为检测这些问题,GoLand 提供了过程间 DFA。 该功能会跟踪数值如何通过函数调用传播,从而在整个代码库中检测潜在的 nil 解引用问题。

如需了解有关过程内分析的更多信息,请参阅 blog.jetbrains.com 上的博客文章

解释潜在的 nil 解引用问题

GoLand 会在编辑器中直接高亮显示潜在的 nil 解引用问题。 出现此类警告时,您可以使用 Explain potential nil dereference 操作。

  • 将鼠标悬停在警告上,或单击警告后按 Alt+Enter ,然后选择 Explain potential nil dereference

    解释潜在的 nil 解引用问题

    此操作将在 问题 工具窗口中打开 Go DFA 选项卡。 该工具会逐步解释 nil 值如何在代码中传播及其使用位置。 这有助于您理解问题并高效修复,无需在整个代码库中查找。

    GoLand 中解释潜在的 nil 解引用问题

在快速文档中查看 nilability 信息

GoLand 现已在快速文档弹窗中直接显示 nilability 信息。 这有助于您快速判断函数是否可能返回 nil,或是否要求参数或接收者为非 nil。

  1. 将光标置于代码中的函数、参数或接收者上。

  2. 按下 Ctrl+Q 触发快速文档弹窗。 在弹窗中查找 Nilability info 部分。

    快速文档中的 nilability 信息

使用 Qodana 进行代码检查

安装 Qodana 插件

此功能依赖于 Qodana 插件,您需要安装并启用此插件。

  1. 按下 Ctrl+Alt+S 打开设置,然后选择 插件

  2. 打开 Marketplace 选项卡,找到 Qodana 插件并点击 安装 (如提示请重启 IDE)。

除了在 IDE 中运行代码检查外,您还可以使用 Qodana 检查代码:

  • 在本地(包括 IDE 中)以及作为 CI/CD 流水线的一部分运行 GoLand 检查。

  • 使用 CI/CD 基础架构运行资源密集型的检查。

  • 在 CI 系统中通过质量门控实施质量标准。

  • 在 IDE 和 CI 工具中共享相同的检查配置文件。

  • 访问仅在 Qodana 中提供的检查,例如安全检查和许可证审计。

  • 访问检查结果的历史概览。

    您可以比较不同提交之间的检查结果,以更好地了解进展情况。

有关更多信息,请参阅 Qodana

Qodana 报告
最后修改日期: 2025年 9月 26日