在 go 中创建一个包含列表类型的结构

我创建了一个结构,这个结构中包含两个列表类型。当我尝试实例化我的结构时,我收到错误


cannot use list.New() (type *list.List) as type list.List in field value


我正在使用 golang 游乐场


结构


type myStruct struct {

    name string

    messages list.List

    users list.List

    lastUsed time.Time

}

实例化结构


var myVar = myStruct{"hello", list.New(), list.New(), time.Now()}


LEATH
浏览 129回答 2
2回答

哆啦的时光机

list.New() 返回一个指针*List,而 myStruct 将其字段声明为List。func New() *列表消息和用户应该是 *list.Listtype myStruct struct {    name string    messages *list.List    users *list.List    lastUsed time.Time}根据您的需要的另一种方法,您可以按如下方式初始化结构:var myVar = myStruct{"hello", *list.New(), *list.New(), time.Now()}

一只萌萌小番薯

您正在创建错误的结构,因为根据listpackageNew()方法返回列表的指针类型,并且您list在没有指针的结构中创建。func New() *List所以,根据 doc 你需要像下面这样创建你的结构:type myStruct struct {    name string    messages *list.List    users *list.List    lastUsed time.Time}去游乐场
打开App,查看更多内容
随时随地看视频慕课网APP