gpt4 book ai didi

go - 如何使用 gogo/protobuf 获取自定义 go 类型

转载 作者:行者123 更新时间:2023-12-01 22:28:42 25 4
gpt4 key购买 nike

我在 .proto 文件中的代码目前如下所示:

message Category {
int64 CategoryID = 1;
}

message Categories {
repeated Category cat = 1;
}

当我运行 protoc --gogofaster_out=. *.proto我得到的输出是:
type Category struct {
CategoryID int64
}

type Categories struct {
Cat []*Category
}

但我真正想要的是:
type Category struct {
CategoryID int64
}

type Categories []*Category

.proto 文件中的代码需要什么才能获得所需的输出?

最佳答案

Protobuf 基本上是一种序列化结构化数据的机制。这意味着在发送原始“消息”之前,必须对其进行序列化。当您为不同的语言编译此原型(prototype)时,它会生成适当的类(用于 c++/Java)、用于 Golang 的结构。在您的情况下,“type Categories []*Category”不是一条消息,而是一个无法序列化的独立实体。 (我可以在这里更正)。请参阅 Protobuf 语言指南 https://developers.google.com/protocol-buffers/docs/proto3

如果这里的意图是拥有一个 Category 类型的数组并对其进行序列化,则建议将其封装在消息中。

关于go - 如何使用 gogo/protobuf 获取自定义 go 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57323472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com