登录
首页 >  Golang >  Go问答

接收结构体实例的go列表

来源:stackoverflow

时间:2024-02-16 21:27:20 108浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《接收结构体实例的go列表》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我在 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
}

正确答案


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

type element struct {   
    value any
}

因此要查看原始的具体类型值,您需要执行 type assertion

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

本篇关于《接收结构体实例的go列表》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>