++ 是否允许在 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++
.
考虑这段 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++
.