
Go语言的for循环不支持类似Python的range(step)语法,必须显式更新循环变量;常见错误是仅写i + 20而未赋值,导致编译报错“evaluated but not used”。正确做法是使用i += 20或i = i + 20完成步长递增。
go语言的for循环不支持类似python的range(step)语法,必须显式更新循环变量;常见错误是仅写而未赋值,导致编译报错“evaluated but not used”。正确做法是使用或完成步长递增。
在Go语言中,for循环的语法结构严格固定为三部分:初始化语句、条件表达式和后置语句(post statement),且后置语句必须是一个可执行的操作(如赋值、函数调用等),而不能仅仅是求值表达式。因此,像 i + 20 这样的纯表达式虽然合法,但因其结果未被使用,Go编译器会直接拒绝——这体现了Go对代码明确性和无副作用的严格要求。
要实现带步长(step)的递增循环,必须在后置语句中显式更新循环变量。以下是推荐写法:
package main
import "fmt"
func main() {
var celsius int
// ✅ 正确:使用 += 实现步长为20的递增(最常用、最简洁)
for i := 0; i <p>你也可以使用等价的显式赋值形式:</p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/gongju/2525" title="Go语言(Golang)1.26.0"><img
src="https://img.php.cn/upload/manual/001/589/237/6a6ae8334dfb7907.jpg" alt="Go语言(Golang)1.26.0" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/gongju/2525" title="Go语言(Golang)1.26.0" class="overflowclass">Go语言(Golang)1.26.0</a>
<p class="overflowclass">Go语言(Golang)1.26.0版本提供 Go 官方 Windows amd64 MSI 安装包下载入口,版本号 1.26.0,可用于旧项目维护、兼容性测试和指定版本开发环境配置。</p>
</div>
<a rel="nofollow" href="/xiazai/gongju/2525" title="Go语言(Golang)1.26.0" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div><pre class="brush:php;toolbar:false;">for i := 0; i <p>但 i += 20 更符合Go的惯用风格(idiomatic Go),语义清晰、书写简洁,且与C/Java等语言保持一致认知。</p><p>⚠️ 注意事项:</p>
- Go没有for i in range(0, 301, 20)或for i := 0 to 300 step 20这类语法,切勿尝试模仿其他语言;
- 后置语句在每次循环体执行结束后运行,因此i += 20影响的是下一轮迭代的初始值;
- 若需动态步长(如根据条件变化),可在循环体内修改i(例如 i += stepSize),但需谨慎避免无限循环;
- 整数除法 / 在Go中自动截断小数部分(向零取整),本例中5*(i-32)/9适用于整数华氏转摄氏近似计算,如需更高精度,请使用float64并配合math.Round()等函数。
掌握这一基础语法细节,能有效避免初学者常见的编译错误,并写出更健壮、可维护的Go循环逻辑。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










