面试真题:下面这段 iota 代码输出是什么?(进阶10题)

iota是Go语言中仅在const块内有效的常量计数器,从0开始每行递增,常用于生成序列、位掩码等;不同const块间互不影响,同一行多次出现值相同。

这段 iota 代码的输出取决于具体代码内容,但题目中未给出实际代码。因此无法直接判断输出结果。

常见 iota 面试题模式

iota 是 Go 语言中的常量计数器,仅在 const 块中有效,每次出现在新行时自动递增(从 0 开始)。典型考法包括:

  • 多行 const 中未显式赋值的常量连续使用 iota,值依次为 0, 1, 2, ...
  • 配合位运算(如 1 )生成 2 的幂次方:1, 2, 4, 8...
  • 用下划线 _ 跳过某值,iota 仍会递增
  • 在同一行中多次出现 iota(如 a, b = iota, iota),值相同

快速验证方法

遇到类似题目,建议立即写个最小可运行示例:

package main
import "fmt"

const (
  a = iota // 0
  b // 1
  c // 2
)

func main() {
  fmt.Pri

ntln(a, b, c) // 输出:0 1 2
}

易错点提醒

注意这些细节,否则容易误判:

  • iota 只在 const 声明块内重置,不同 const 块之间互不影响
  • 若 const 行以括号开始(如 const (),iota 按行计数;若单行声明(如 const a = iota),该块中仅一个 iota
  • 表达式如 iota * 10"x"[iota] 会参与计算,需代入当前值求结果

如果提供具体代码,可以帮你逐行分析输出。