仍然是 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 中的類似函數(shù)也可以工作。為什么這在 Go 中不起作用?
1 回答

12345678_0001
TA貢獻1802條經(jīng)驗 獲得超5個贊
您需要將內(nèi)部 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 關(guān)注
- 136 瀏覽
添加回答
舉報
0/150
提交
取消