首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Go原型切片字段中添加一个零条目?

如何在Go原型切片字段中添加一个零条目?
EN

Stack Overflow用户
提问于 2022-01-08 01:46:41
回答 1查看 590关注 0票数 2

生成的protobuf结构如下所示:

代码语言:javascript
复制
type ProtoStruct {
   A []*SomeStruct
}

现在,我正试图用nil将一个protoreflect条目添加到该切片中。

我试过:

代码语言:javascript
复制
var v protoreflect.Value // somehow get this value from previous steps
v.List().Append(protoreflect.ValueOf(nil))

它惊慌失措地:

类型不匹配:无法将零转换为消息

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-15 21:00:11

List().Append()的参数应该是携带适当类型信息的protoreflect.Value

要附加类型的 protobuf nil项,可以这样使用protoreflect.ValueOf

代码语言:javascript
复制
var a *pb.SomeStruct
v.List().Append(protoreflect.ValueOf(a.ProtoReflect()))

请注意,这将不会导致对无指针取消引用造成恐慌ProtoReflect()方法调用处理接收方为nil;它将返回一个适当初始化的protoreflect.Message包装一个nil值,然后您可以成功地将该值传递给ValueOf

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70629035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档