Go中函数参数的后递增运算符,不可能吗?

con*_*com 6 go

怎么来,在Go(1.2.1)中,这有效吗?

package main

import (
    "fmt"
)

func main() {
    var i = 0
    for i < 10 {
        fmt.Println(i)
        i++
    }
}
Run Code Online (Sandbox Code Playgroud)

但是这(在函数参数中使用递增运算符)不是吗?

package main

import (
    "fmt"
)

func main() {
    var i = 0
    for i < 10 {
        fmt.Println(i++)
    }
}
Run Code Online (Sandbox Code Playgroud)

and*_*olm 20

在Go中,i++是一个陈述,而不是表达.所以你不能在另一个表达式中使用它的值,比如函数调用.

这消除了后增量和预增量之间的区别,后者是混淆和错误的来源.

  • *“使用变量名是造成混乱和错误的根源,此外,它还可能导致编译器优化错误。因此,在使用过程中,我们应该使用cpu寄存器名。” * :-)(顺便说一句,您的回答很有用) (2认同)