iota
标识符出现在 const
声明中时,报告 switch
语句中的未处理值。 要处理这些值,请考虑使用 case
或 default
子句。
Go 中的 iota
关键字会在 const
块中创建一个整数序列。 虽然 Go 编译器不需要处理所有 iota
值,但缺少其中一些值可能表示存在 bug。
有关 iota
的详细信息,请参阅 go.dev 上的 Iota。
示例:
const (
a = iota
b
c = -5
)
func main() {
v := 5
switch v {
case a:
break;
case b:
break;
}
}
IDE 会触发检查,因为 c
未由 switch
语句处理。 请注意,c
位于相同的 const
块中,即使它不使用 iota
。
快速修复选项是为值创建 'case' 子句和创建 'default' 子句。 应用创建 'default' 子句快速修复后:
const (
a = iota
b
c
)
func main() {
v := 5
switch v {
case a:
break;
default:
}
}