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

你能在 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`


隔江千里
浏览 89回答 2
2回答

LEATH

您不能获取函数定义的地址,但可以获取函数值的地址。这有效:g := &f游乐场示例:https ://play.golang.org/p/BokYCrVmV_p

慕斯王

您可以传递它并设置它:func a(f *func()) {  *f = foo}func main() {   var f func()   a(&f)   f()}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go