新问题:Go语言怎么初始化结构体类型数组中的指针类型呢?(原问题:Go语言怎么在结构体中定义一个指向函数的指针呢?)

yelingyun · 2017-05-04 09:33:25 · 3528 次点击

有个地方贴错了,代码如下: var head = []DataNode{ {cmd:"help", desc:"cmd tips", handler:help}, {cmd:"add", desc:"addition of two numbers", handler:add}}

func main(){ head[0].next = &head[1] head[1].next = nil ....... }

出错内容如下: .\menu2.go:18:initialization loop: E:\Go_WorkSpace\lab3\main\menu2.go:18 head refers to E:\Go_WorkSpace\lab3\main\menu2.go:18 help refers to E:\Go_WorkSpace\lab3\main\menu2.go:18 head

#11
更多评论

func(*DataNode) next (){} 这样不好吗?

#1

你好,谢谢你的回答。是这样的,在结构体中,我定义handler是一个指向函数的指针变量,cmd是指向控制台输入的命令的指针变量。根据cmd值的不同,程序将不同的函数地址赋给handler。在c中,可以这么定义,int (*handler)(),但是我不知道怎么用go实现同样的功能,你知道吗?谢谢。

#2