从非指针结构元素转到链表指针分配

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作为指针?




元芳怎么了
浏览 195回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go