仍然是 Go 的新手。我正在尝试写一个闭包:https://play.golang.org/p/qz-8WFh0mvpackage mainimport "log"func myfunc(a int) bool{ func otherfunc(b int) bool{ return false } log.Println(otherfunc(2)) return true}func main() { myfunc(1) log.Println("here")}Python 中的类似函数也可以工作。为什么这在 Go 中不起作用?
1 回答
12345678_0001
TA贡献1802条经验 获得超5个赞
您需要将内部 func 定义为局部变量。试试这个
func myfunc(a int) bool {
otherfunc := func(b int) bool {
return false
}
log.Println(otherfunc(2))
return true
}
顺便提一句。otherfunc := func(b int) bool {是简写var otherfunc func(int) bool = func(b int) bool {
看看这些例子
https://gobyexample.com/closures
https://gobyexample.com/variables
- 1 回答
- 0 关注
- 116 浏览
添加回答
举报
0/150
提交
取消