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作为指针?
相关分类