Go语言嵌套函数声明出现语法错误,请求修复指导
修复Go语言嵌套函数的语法错误
Go语言不支持在函数内部定义命名嵌套函数,你代码里的func plus(x int, y int) int写法违反了语法规则,这就是编译器报错的原因。
以下是两种可行的修复方案:
方案一:将匿名函数赋值给变量(可复用)
如果需要在main函数内部多次调用这个加法逻辑,可以把匿名函数赋值给一个变量:
package main import "fmt" func main() { // 把匿名函数赋值给plus变量 plus := func(x int, y int) int { return x + y } // 调用这个函数 fmt.Println(plus(3, 5)) // 输出8 }
方案二:立即执行匿名函数(单次调用)
如果只需要执行一次这个加法逻辑,可以直接定义并调用匿名函数:
package main import "fmt" func main() { // 定义匿名函数后立即传入参数调用 result := func(x int, y int) int { return x + y }(2, 4) fmt.Println(result) // 输出6 }
补充说明:Go的函数只能在包级别定义,函数内部只能使用匿名函数(通过变量引用或直接执行),无法像部分其他语言那样直接声明命名嵌套函数。
内容的提问来源于stack exchange,提问作者lior1zh2000
相关产品推荐
相关产品推荐

