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

yelingyun · · 3386 次点击
你好,谢谢你的回答。我定义的head是一个全局变量,如果没有指定next的值,他会报错,没有指向。 代码如下: 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 = &head[2] head[2].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
#10
更多评论
func(*DataNode) next (){} 这样不好吗?
#1
你好,谢谢你的回答。是这样的,在结构体中,我定义handler是一个指向函数的指针变量,cmd是指向控制台输入的命令的指针变量。根据cmd值的不同,程序将不同的函数地址赋给handler。在c中,可以这么定义,int (*handler)(),但是我不知道怎么用go实现同样的功能,你知道吗?谢谢。
#2