Go 中 for 循环为什么不能使用 i++ 自增?
在 go 的 for 循环中,自增写法 i++ 无法正常运行,这让人感到困惑。要理解其原因,我们需要了解 go 中 for 循环的语法。
for init; condition; post {}
其中:
- init:循环开始时的初始化语句
- condition:循环的条件表达式
- post:每次循环结束时执行的语句
在上面的示例代码中,使用 i++ 语法实际上是两个语句:i++ 和 j--。这违反了 go 中 for 循环 post 区域只能包含一个语句的语法规则。
正确的写法是:
for i, j := j, len(nums)-1; i < j; i, j = i+1, j-1 { nums[i], nums[j] = nums[j], nums[i] }