为了账号安全,请及时绑定邮箱和手机立即绑定

从 go lists 中接收结构的实例

从 go lists 中接收结构的实例

Go
ibeautiful 2022-11-28 14:47:37
我在 go 中有一个结构是:type AcceptMsg struct {    state         protoimpl.MessageState    sizeCache     protoimpl.SizeCache    unknownFields protoimpl.UnknownFields    Rnd  *Round `protobuf:"bytes,1,opt,name=rnd,proto3" json:"rnd,omitempty"`    Slot *Slot  `protobuf:"bytes,2,opt,name=slot,proto3" json:"slot,omitempty"`    Val  *Value `protobuf:"bytes,3,opt,name=val,proto3" json:"val,omitempty"`}我已经将该结构中的实例添加到acceptMsgQueue     *list.List  我的问题中,当我从列表中接收到它们时,如何访问实例的变量:for f := p.acceptMsgQueue.Front(); f != nil; f = f.Next() {    acceptMsg := f.Value}当我在 vscode 中将点从 of放入时,它无法将其识别为正确的类型,并且acceptMsg我无权访问Rnd和作为.SlotValacceptMsg
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

文档中,列表的元素值是使用any(又名interface{})存储的:

type Element struct {   

    Value any

}

所以要查看您的原始具体类型值,您需要执行类型断言


acceptMsg, ok := f.Value.(AcceptMsg) // ok==true if dynamic type is correct


查看完整回答
反对 回复 2022-11-28
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号