我们可以在 Go 中使用函数指针吗?

新手上路,请多包涵

我正在学习 Go 中的指针。并设法写下类似的东西:

 func hello(){

       fmt.Println("Hello World")
}

func main(){

       pfunc := hello     //pfunc is a pointer to the function "hello"
       pfunc()            //calling pfunc prints "Hello World" similar to hello function
}

有没有办法声明函数指针而不像上面那样定义它?我们可以像在 C 中那样写一些东西吗?

例如 void (*pfunc)(void);

原文由 Kevin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 650
1 个回答

如果您使用签名,它会起作用。没有指针。

 type HelloFunc func(string)

func SayHello(to string) {
    fmt.Printf("Hello, %s!\n", to)
}

func main() {
    var hf HelloFunc

    hf = SayHello

    hf("world")
}

或者,您可以直接使用函数签名,而无需声明新类型。

原文由 themue 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏