GoLand 2025.3 Help

禁用和启用检查

有些检查可能会报告您当前不希望看到的问题。 在这种情况下,您可以禁用或抑制它们。

禁用检查

当您 禁用检查时,您将其关闭。 这意味着代码分析引擎将停止在项目文件中搜索此检查旨在检测的问题。 请注意,当您禁用某个检查时,您是在当前检查配置文件中禁用它;它在其他配置文件中仍然是启用的。

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

在设置中禁用检查

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

  2. 找到您想要禁用的检查,并清除其旁边的复选框。

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

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

从编辑器禁用检查

  1. 将插入符号放在高亮行上,然后按 Alt+Enter (或点击 显示上下文操作图标 )以调用可用上下文操作的列表。

  2. 点击您想要禁用的检查旁边的 更多操作按钮 ,并选择 禁用检查

从问题工具窗口禁用检查

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

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

抑制检查

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

在 GoLand 中,大多数检查可以被抑制。 然而,有些检查没有此选项。 例如,语法错误始终会在编辑器中高亮显示,无论设置如何。

禁止从编辑器中检查

  1. 将插入符号置于高亮显示的行上并按 Alt+Enter (或点击 意图操作 图标 使用意图操作)。

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

    您可以在 抑制注释表中找到检查及其标识符的列表。 例如,要抑制 导出元素的注释以不正确的名称开头 检查,请使用带有 // noinspection 注释的 GoCommentStartInspection 标识符。 完整注释为 // 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

范围中多余的空参数

GoRedundantBlankArgInRangeInspection

复合字面量中存在冗余类型

GoRedundantTypeDeclInCompositeLit

多余的分号

GoRedundantSemicolonInspection

多余的逗号

GoRedundantCommaInspection

多余的类型转换

GoRedundantConversionInspection

多余的导入别名

GoRedundantImportAliasInspection

类型可以省略

GoVarAndConstTypeMayBeOmittedInspection

使用字面量声明的空切片

GoPreferNilSliceInspection

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

GoCommentStartInspection

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

GoExportedOwnDeclarationInspection

结构体初始化没有字段名称

GoStructInitializationWithoutFieldNamesInspection

接收器具有通用名称

GoReceiverNamesInspection

名称以包名开头

GoNameStartsWithPackageNameInspection

未排序的 import

GoUnsortedImportInspection

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

GoErrorStringFormatInspection

注释没有前导空格

GoCommentLeadingSpaceInspection

使用 Snake_Case

GoSnakeCaseUsageInspection

导出元素应有注释

GoExportedElementShouldHaveCommentInspection

特定于单位的 'time.Duration' 后缀

GoUnitSpecificDurationSuffixInspection

类型形参以小写声明

GoTypeParameterInLowerCaseInspection

for 循环条件中存在冗余的 'true'

GoRedundantTrueInForConditionInspection

保留字用作名称

GoReservedWordUsedAsNameInspection

函数字面量捕获的循环变量

GoLoopClosureInspection

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

GoImportUsedAsNameInspection

格式错误的结构体标记

GoVetStructTagInspection

不可能的接口类型断言

GoVetImpossibleInterfaceToInterfaceAssertionInspection

错误使用 'fmt.Printf' 和 'fmt.Println' 函数

GoPrintFunctionsInspection

变量遮蔽

GoShadowedVarInspection

除以零

GoDivisionByZeroInspection

'strings.Replace' 的计数参数错误

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

'FailNow' 在非测试的 goroutine 中

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

模糊测试从 Go 1.18 开始支持

GoFuzzingSupportInspection

转换字符串字面量

GoConvertStringLiteralsInspection

指令注释中的前导空格

GoLeadingWhitespaceInDirectiveCommentInspection

复合字面量中的换行符前缺少尾随逗号

GoMissingTrailingCommaInspection

最后修改日期: 2025年 12月 5日