go 自增语法 i++ 失效原因
在 go 语言中,自增操作符 ++ 应用于变量会产生一个新的值,但不会修改原有变量。因此,下面的代码无法正常运行:
for i, j := j, len(nums)-1; i < j; i++, j-- { nums[i], nums[j] = nums[j], nums[i] }
登录后复制
这是因为 i++ 和 j– 是两个独立的语句,这意味着 i 和 j 不会在同一时间更新。相反,可以使用以下写法:
for i, j := j, len(nums)-1; i < j; i, j = i+1, j-1 { nums[i], nums[j] = nums[j], nums[i] }
登录后复制
在这个例子中,i, j = i+1, j-1 是一个单一的语句,它同时更新了 i 和 j。
总之,在 for 循环的 for 子句中,变量赋值、比较和操作必须是单条语句。单条语句由分号 (;) 分割,因此对于多个操作,需要使用逗号 (,) 将它们组合成一条。
以上就是Go 语言中自增语法 i++ 为何在 for 循环中失效?的详细内容,更多请关注php中文网其它相关文章!