https://github.com/golang/go/blob/master/src/container/list/list.go#L49我很难理解为什么我cannot assign to pointer在 Go 中出错。这是有效的代码:http : //play.golang.org/p/P9FjK8A-32与 Go 的原始容器/列表代码相同type List struct { root Element len int}type Element struct { next, prev *Element list *List Value interface{}}原始代码具有root作为值并在每次需要采用指针类型时引用它,但为什么不首先定义root为指针?type List struct { root *Element len int}type Element struct { next, prev *Element list *List Value interface{}}这给了我一个错误:http : //play.golang.org/p/1gCAR_rcx1 ->invalid memory address or nil pointer dereference为什么我收到这个错误?为什么去定义root为非指针的值时,它定义next,并prev作为指针?
1 回答
- 1 回答
- 0 关注
- 194 浏览
添加回答
举报
0/150
提交
取消