GoLand 2025.2 Help

启用与禁用检查

某些检查可能会报告您目前不希望看到的问题。 此时,您可以禁用或抑制它们。

禁用检查

当您 禁用检查时,即表示将其关闭。 这意味着代码分析引擎将停止在项目文件中查找此检查旨在检测的问题。 请注意,禁用检查会在当前检查配置文件中生效,但在其他配置文件中仍保持启用状态。

GoLand 中的大多数检查都可以禁用。 但是,某些检查将无视设置继续高亮显示代码。 例如,语法错误始终会被高亮显示。

在设置中禁用检查

  1. Ctrl+Alt+S 打开设置,然后选择 编辑器 | 检查

  2. 找到要禁用的检查并取消其旁边的复选框。

  3. 应用更改并关闭对话框。

您可以使用上下文操作在编辑器中快速禁用已触发的检查。

通过编辑器禁用检查

  1. 将插入符号置于高亮行处,按 Alt+Enter (或单击 显示上下文操作图标 )以打开可用上下文操作列表。

  2. 单击要禁用的检查旁边的 更多操作按钮 ,然后选择 禁用检查

通过“问题”工具窗口禁用检查

  1. 检查结果 选项卡中的 问题 工具窗口中(运行代码分析后显示),右键单击要禁用的检查并选择 禁用检查

  2. 单击工具栏上的 查看选项按钮 并选择 筛选已解决项 以隐藏禁用检查的警报。

抑制检查

当您 抑制检查时,代码分析引擎不会高亮显示此检查在特定代码段(类型、函数或行)中发现的问题。 您还可以抑制当前类型中的所有检查。

GoLand 中的大多数检查都可以抑制。 但是,某些检查不支持此选项。 例如,语法错误无论设置如何,在编辑器中始终会高亮显示。

通过编辑器抑制检查

  1. 将插入符号置于高亮行处,按 Alt+Enter (或单击 意图操作图标 使用意图操作)。

  2. 单击要抑制的检查旁边的 按钮,并根据所需作用域选择操作。 GoLand 会在抑制检查的代码片段上方添加一条 // noinspection 注释。

    您可以在 抑制性注释 表中找到检查及其标识符的列表。 例如,要抑制 导出元素的注释以不正确的名称开头 检查,请将 GoCommentStartInspection 标识符与 // noinspection 注释一起使用。 完整注释为 // noinspection GoCommentStartInspection

    正在抑制检查

通过“问题”工具窗口抑制检查

检查结果 选项卡中的 问题 工具窗口会显示在运行代码分析时检测到的问题。

  • 检查结果 选项卡中的 问题 工具窗口中(运行代码分析后显示),右键单击要抑制的检查并选择所需的抑制操作。

    在“检查结果”工具窗口中抑制检查

启用已抑制的检查

抑制检查时,IDE 会在所选符号前添加 //noinspection 注解。 例如,若您对某个语句抑制检查,GoLand 将在该语句前添加注解。

  • 若要重新启用已抑制的检查,请删除 //noinspection 注解。

    方法前的 //noinspection 注解

禁用高亮但保留修复

检查依据其 严重性 在编辑器中高亮显示代码问题。 您可以快速禁用检查的代码高亮,而无需打开设置。 在此情况下,检查保持启用并提供修复,但其严重性变为 无高亮显示(修复可用)

  1. 将插入符号置于编辑器中由检查高亮显示的代码元素上,并按 Alt+Enter

    系统将显示一个包含可用修复及上下文操作的列表。 找到标有 意图操作图标 的代码检查修复。

  2. 点击修复旁边的 按钮以打开检查选项,并选择 禁用高亮显示,保留修正

    禁用高亮,保留修复

您正在更改严重性级别的检查名称显示在检查选项的上方。

如果您想恢复高亮显示,请按 Ctrl+Alt+S 打开 IDE 设置,并选择 编辑器 | 检查。 在列表中找到所需的检查,并根据需要更改其严重性。 如需了解更多信息,请参阅 在所有作用域中更改检查严重级别

更改文件的高亮级别

  • 默认情况下,GoLand 会高亮显示所有检测到的代码问题。 将鼠标悬停在编辑器右上角的小部件上,并从 高亮显示 列表中选择其他级别:

    • :关闭高亮显示。

    • 语法 :仅高亮显示语法问题。

    • 所有问题 :(默认)高亮显示语法问题和检查发现的问题。

  • 您也可以通过主菜单更改高亮显示级别。 选择或按 Ctrl+Alt+Shift+H

抑制性注释

检查名称

与 noinspection 关键字配合使用的 ID

未使用的常量

GoUnusedConstInspection

未使用的全局变量

GoUnusedGlobalVariableInspection

未使用的导出函数

GoUnusedExportedFunctionInspection

未使用的函数

GoUnusedFunctionInspection

未使用的参数

GoUnusedParameterInspection

未使用的类型参数

GoUnusedTypeParameterInspection

未使用的类型

GoUnusedTypeInspection

未使用的导出类型

GoUnusedExportedTypeInspection

已禁用 GOPATH 索引

GoDisabledGopathIndexingInspection

布尔条件

GoBoolExpressionsInspection

自我赋值

GoSelfAssignmentInspection

空声明

GoEmptyDeclarationInspection

切片中冗余的第二索引

GoRedundantSecondIndexInSlicesInspection

range 中冗余的空白参数

GoRedundantBlankArgInRangeInspection

复合字面量中的冗余类型

GoRedundantTypeDeclInCompositeLit

冗余的分号

GoRedundantSemicolonInspection

冗余的逗号

GoRedundantCommaInspection

冗余的类型转换

GoRedundantConversionInspection

冗余的导入别名

GoRedundantImportAliasInspection

可省略的类型

GoVarAndConstTypeMayBeOmittedInspection

使用字面量声明的空切片

GoPreferNilSliceInspection

导出元素的注释以错误的名称开头

GoCommentStartInspection

导出元素应具有自己的声明

GoExportedOwnDeclarationInspection

结构体初始化未使用字段名称

GoStructInitializationWithoutFieldNamesInspection

接收者使用了通用名称

GoReceiverNamesInspection

名称以包名开头

GoNameStartsWithPackageNameInspection

导入未排序

GoUnsortedImportInspection

错误字符串不能以大写字母开头或以标点符号结尾

GoErrorStringFormatInspection

注释前缺少空格

GoCommentLeadingSpaceInspection

使用 Snake_Case

GoSnakeCaseUsageInspection

导出元素应包含注释

GoExportedElementShouldHaveCommentInspection

“time.Duration”的单位专用后缀

GoUnitSpecificDurationSuffixInspection

类型参数以小写字母声明

GoTypeParameterInLowerCaseInspection

for 循环条件中冗余的“true”

GoRedundantTrueInForConditionInspection

使用保留字作为名称

GoReservedWordUsedAsNameInspection

循环变量被 func 字面量捕获

GoLoopClosureInspection

导入的包名称被用作名称标识符

GoImportUsedAsNameInspection

结构体标签格式错误

GoVetStructTagInspection

不可能的接口类型断言

GoVetImpossibleInterfaceToInterfaceAssertionInspection

对 'fmt.Printf' 和 'fmt.Println' 函数的使用不正确

GoPrintFunctionsInspection

变量遮蔽

GoShadowedVarInspection

除以零

GoDivisionByZeroInspection

'strings.Replace' 的 count 参数使用不当

GoStringsReplaceCountInspection

构建标签格式错误

GoBuildTagInspection

对 'sync/atomic' 包的使用不正确

GoVetAtomicInspection

锁错误地以值传递

GoVetCopyLockInspection

将 'uintptr' 无效地转换为 'unsafe.Pointer'

GoVetUnsafePointerInspection

对 'errors.As' 函数的使用不正确

GoErrorsAsInspection

函数或方法调用结果未使用

GoUnusedCallResultInspection

未处理的错误

GoUnhandledErrorResultInspection

空值分析器

GoNilnessInspection

Defer/go 语句直接调用 'recover' 或 'panic'

GoDeferGoInspection

常用函数名的非标准签名

GoStandardMethodsInspection

超出范围的移位表达式

GoShiftInspection

调用 'Unmarshal' 时参数不正确

GoVetUnmarshalInspection

整型到字符串类型的转换

GoVetIntToStringConversionInspection

'context.CancelFunc' 未被调用

GoVetLostCancelInspection

在非测试 goroutine 中调用 'FailNow'

GoVetFailNowInNotTestGoroutineInspection

值接收器与指针接收器混用

GoMixedReceiverTypesInspection

对 'iota' 的不规范使用

GoIrregularIotaInspection

错误对象的直接比较

GoDirectComparisonOfErrorsInspection

对错误对象的类型断言在包装错误上失败

GoTypeAssertionOnErrorsInspection

'switch' 中缺失 'iota' 常量的 'case' 语句

GoSwitchMissingCasesForIotaConstsInspection

无限 'for' 循环

GoInfiniteForInspection

循环中的 'defer'

GoDeferInLoopInspection

对接收器的赋值

GoAssignmentToReceiverInspection

不可达代码

GoUnreachableCodeInspection

已弃用的元素

GoDeprecationInspection

多余的括号

GoRedundantParensInspection

导出函数返回未导出类型

GoExportedFuncWithUnexportedTypeInspection

不必要的导出标识符

GoUnnecessarilyExportedIdentifiersInspection

测试函数名称格式错误

GoTestNameInspection

使用 context.TODO()

GoContextTodoInspection

使用 'interface{}' 作为类型

GoInterfaceToAnyInspection

Fuzzing 从 Go 1.18 开始受支持

GoFuzzingSupportInspection

转换字符串字面量

GoConvertStringLiteralsInspection

指令注释中有前导空格

GoLeadingWhitespaceInDirectiveCommentInspection

复合字面量中换行符前缺失结尾逗号

GoMissingTrailingCommaInspection

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