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

yelingyun · · 3414 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

type DataNode struct{ cmd *string desc *string handler func() int next *DataNode } var head = []DataNode{ {cmd:"help", desc:"cmd tips", handler:help, next:&head[1]}, {cmd:"add", desc:"addition of two numbers", handler:add, next:nil}} func main(){ //head[0].next = &head[1] //head[1].next = &head[2] //head[2].next = nil ...... } 如果在main中初始化next,则报错如下: .\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 如果在{}中初始化next,出错如下: .\menu2.go:18:typechecking loop involving head = []DataNode literal E:\Go_WorkSpace\lab3\main\menu2.go:18 head E:\Go_WorkSpace\lab3\main\menu2.go:18 head[1] E:\Go_WorkSpace\lab3\main\menu2.go:18 &head[1] E:\Go_WorkSpace\lab3\main\menu2.go:18 composite literal E:\Go_WorkSpace\lab3\main\menu2.go:18 []DataNode literal 第二种错误可能如6楼所说,go语言在我这种方式构造的时候参数值必须是基本类型,要是自定的Struts是不能这样直接在构造里面写的,但是我在main中定义有会报第一种错误。 请各位Go友帮忙解决下这个问题~~~

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3414 次点击  
加入收藏 微博
14 回复  |  直到 2017-05-05 11:32:10
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传