代码检查
在 GoLand 中,提供了一组代码检查功能,用于在编译项目前检测并修复项目中的异常代码。 IDE 可以发现并高亮显示各种问题,定位无效代码、查找可能的 bug、拼写问题,并优化整体代码结构。
检查可以扫描项目中的所有项目文件,也可以仅扫描特定的 范围 (例如,仅在生产代码或已修改文件中)。
每个检查都有一个 严重性级别—— 问题会对代码产生多大影响。 编辑器中会以不同方式高亮显示不同的严重性,方便您快速区分严重问题和次要问题。 GoLand 提供了一组预定义的严重性级别,并允许您自定义级别。
检查及其设置按 配置文件 分类管理。 每个配置文件包含已启用的检查信息、检查的文件范围以及对应的严重性级别。
访问所有可用的检查及其设置
在 设置 对话框(Ctrl+Alt+S )中,转到 。
您也可以按下 Ctrl+Alt+Shift+H ,在弹出窗口中选择 配置检查。

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

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。

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

在快速文档中查看 nilability 信息
GoLand 现已在快速文档弹窗中直接显示 nilability 信息。 这有助于您快速判断函数是否可能返回 nil,或是否要求参数或接收者为非 nil。
将光标置于代码中的函数、参数或接收者上。
按下 Ctrl+Q 触发快速文档弹窗。 在弹窗中查找 Nilability info 部分。

使用 Qodana 进行代码检查
安装 Qodana 插件
此功能依赖于 Qodana 插件,您需要安装并启用此插件。
按下 Ctrl+Alt+S 打开设置,然后选择 。
打开 Marketplace 选项卡,找到 Qodana 插件并点击 安装 (如提示请重启 IDE)。
除了在 IDE 中运行代码检查外,您还可以使用 Qodana 检查代码:
在本地(包括 IDE 中)以及作为 CI/CD 流水线的一部分运行 GoLand 检查。
使用 CI/CD 基础架构运行资源密集型的检查。
在 CI 系统中通过质量门控实施质量标准。
在 IDE 和 CI 工具中共享相同的检查配置文件。
访问仅在 Qodana 中提供的检查,例如安全检查和许可证审计。
访问检查结果的历史概览。
您可以比较不同提交之间的检查结果,以更好地了解进展情况。
有关更多信息,请参阅 Qodana。
