php中文网

为什么 Go 语言的 for 循环中不能使用 i++ 写法?

php中文网

为什么 i++ 写法不能运用在 go 中的 for 循环中?

在 golang 中使用 for 循环时,与其他语言不同,i++ 不能用于自增 i 的值。原因在于 for 循环语句具有特定的语法格式:

for ; ;

其中:

  • 是循环开始时执行的初始化语句。
  • 是循环持续执行的条件语句。
  • 是每次循环迭代后执行的后执行语句。

在你的示例中,你使用 i++ 作为后执行语句。但根据 golang 的语法,后执行语句只能包含单个表达式,而 i++ 包含了两个语句(i 递增和 j 递减)。

要正确使用 for 循环中的自增,需要将 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-- 就会作为独立语句执行,并且循环可以正常工作。

以上就是为什么 Go 语言的 for 循环中不能使用 i++ 写法?的详细内容,更多请关注php中文网其它相关文章!