You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言赋值语句左侧下划线的作用:解读`var i int; _ = i`代码

拆解Go代码片段var i int; _ = i的作用

嘿,我来给你掰扯清楚这段代码到底干啥用的~

首先先看代码本身:

  • var i int 是声明了一个int类型的变量i;
  • _ = i 是把变量i赋值给Go里的空白标识符_。

它的核心功能只有一个:抑制Go编译器抛出的“声明但未使用变量”的编译错误。

Go的编译器对代码严谨性要求很高——只要你声明了一个变量但从头到尾没用到它,编译器就会直接报错,不让你通过编译。那什么时候会用到这种写法呢?最常见的场景就是自动生成的代码(比如你提到的etcd里的pb.go文件,是Protobuf工具自动生成的):
生成代码的工具可能为了兼容通用逻辑、保持代码结构的一致性,或者预留了变量声明,但在当前的生成场景下这个变量确实用不上。这时候就需要用_ = i这行代码,“假装”使用了这个变量,让编译器不再报错。

顺便提一句,空白标识符_是Go里的特殊存在:它可以接收任何类型的值,但不会占用内存空间,也不能被后续代码引用。这里用它来“消耗”掉变量i,本质就是告诉编译器:“我知道这个变量现在没实际用处,但我是特意声明它的,别卡我~”

内容的提问来源于stack exchange,提问作者savx2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:31:52