function - Go 中是否允许++?

标签 function go operators

这个问题在这里已经有了答案:





Shorthand return

(2 个回答)


2年前关闭。




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

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

最佳答案

return needs一种表达:

ReturnStmt = "return" [ ExpressionList ] .

但是++是一个声明。所以你无法返回x++ .

关于function - Go 中是否允许++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59207845/

相关文章:

python - Go 和 Python HMAC 库给出不同的结果

这段代码可以优化吗?

Java - 乘法未按预期工作

r - 如何将简单的文本表达式转换为 R 中的数学表达式

python - 分别循环遍历数据框的每一列

javascript - 简化我的函数(循环、数组)?

amazon-web-services - Go 代理到 S3 文件适用于本地主机但不适用于生产

go - 如何在golang中用小内存读取大文件?