
Go 的 for 循环不支持类似 Python 的 range(start, stop, step) 语法,其第三部分必须是可执行的语句(如赋值或函数调用),而非单纯表达式;因此 i + 20 会报错“evaluated but not used”,正确写法是 i += 20 或 i = i + 20。
go 的 for 循环不支持类似 python 的 `range(start, stop, step)` 语法,其第三部分必须是**可执行的语句**(如赋值或函数调用),而非单纯表达式;因此 `i + 20` 会报错“evaluated but not used”,正确写法是 `i += 20` 或 `i = i + 20`。
在 Go 中,for 循环的语法结构为:
for 初始化语句; 条件表达式; 后置语句 {
// 循环体
}
其中后置语句(post statement)必须是一个可执行操作,例如变量赋值、函数调用或自增/自减运算。它不能只是求值而不产生副作用的表达式(如 i + 20),否则编译器会报错:"i + 20 evaluated but not used" —— 因为该表达式计算了结果却未保存或使用,属于无效操作。
✅ 正确写法(推荐使用 +=):
package main
import "fmt"
func main() {
var celsius int
for i := 0; i <p>⚠️ 注意事项:</p>
- i += 20 是 Go 中最简洁、最符合惯用法(idiomatic)的步长写法,等价于 i = i + 20;
- 避免写成 i++(步长为 1)或遗漏后置语句(会导致无限循环);
- 若需动态步长(如根据条件变化),可在循环体内手动更新 i,但需确保逻辑安全,防止跳过边界或死循环;
- 整数除法 / 在 Go 中自动截断小数部分(向零取整),此处 5*(i-32)/9 是华氏转摄氏的整数近似,如需更高精度,应使用 float64 类型并配合 math.Round()。
总结:Go 的 for 循环强调显式与可控性,没有隐式步长语法。掌握 +=、-= 等复合赋值操作符,是写出清晰、高效循环的关键。











