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

如果你不能给函数指针赋值,那么函数指针在 Go 中有什么用呢?

如果你不能给函数指针赋值,那么函数指针在 Go 中有什么用呢?

Go
隔江千里 2023-07-17 13:57:57
你能在 Go 中用 a 做任何事情*func()吗?    var f func() = foo // works    var g *func() // works    g = foo // fails `cannot use foo (type func()) as type *func() in assignment` as expected    g = &foo // fails too `cannot take the address of foo`
查看完整描述

2 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

您不能获取函数定义的地址,但可以获取函数的地址。这有效:

g := &f

游乐场示例:https ://play.golang.org/p/BokYCrVmV_p


查看完整回答
反对 回复 2023-07-17
?
慕斯王

TA贡献1864条经验 获得超2个赞

您可以传递它并设置它:


func a(f *func()) {

  *f = foo

}


func main() {

   var f func()


   a(&f)

   f()

}


查看完整回答
反对 回复 2023-07-17
  • 2 回答
  • 0 关注
  • 78 浏览
慕课专栏
更多

添加回答

举报

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