首页 > 解决方案 > Go 中是否允许 ++?

问题描述

考虑这个 Go 代码(可以在这里轻松执行):

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: syntax error: unexpected ++ at end of statement”。

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

标签: functiongooperators

解决方案


return 需要一个表达式:

ReturnStmt = "return" [ ExpressionList ] .

而是++一种说法。所以你不能返回 x++


推荐阅读