我有一个结构
type clientData struct {
msg Message
connId int
}
我试图像这样将其添加到Go List中l := list.New()
l.PushBack(&clientData {
msg: Message {
some fields
},
connId: 1
});
现在,如何从列表中以*clientData
数据类型取回数据?我尝试了l.Front().Value
,但是返回了一个接口...我很确定我不理解Go语言的编组/编组逻辑... 最佳答案
go
中的集合包含一个raw
types(Element.Value
👉🏻空interface{}
)。从list
获取值时,您每次必须分配类型:
l := list.New()
l.PushBack(&clientData {
msg: Message {
some fields
},
connId: 1,
})
cd, ok := l.Front().Value.(*clientData)
if !ok {
panic(errors.New("not a client type"))
}
fmt.Println(cd.connId)