为了账号安全,请及时绑定邮箱和手机立即绑定

试图理解闭包

试图理解闭包

Go
动漫人物 2021-12-20 10:10:02
仍然是 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


查看完整回答
反对 回复 2021-12-20
  • 1 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信