++ 是否允许在 Go 中使用?

Is ++ Allowed In Go Or Not?

考虑这段 Go 代码(可以轻松执行 here):

package main

import "fmt"

func main() {

  // initialize an int variable
  i := 7
  fmt.Printf("%T\n", i) // prints "int"

        // runs a simple for loop
        for i := 1;  i<=5; i++ {
                fmt.Printf("Welcome %d times\n",i)
        }


  fmt.Println(oneLarger(i))

}

// passes arg by VALUE by default
func oneLarger(x int) int {
  return x++ // produces compile error
}

对我来说非常有趣的是,当我执行这段代码时,它给出了错误,“./main.go:23:11: 语法错误:意外的 ++ 在语句的末尾”。

当我注释掉第 23 行时,注释运行正常;它根本不抱怨 for 循环中的 i++。但是,它不喜欢我函数中的 x++。为什么是这样? Go 中 ++ 运算符的一般规则是什么?

return needs 一个表达式:

ReturnStmt = "return" [ ExpressionList ] .

但是++是一个语句。所以你不能 return x++.