当前位置: 首页 > 面试题库 >

XXX_ *输入生成的* .pb.go文件

柳豪
2023-03-14
问题内容

我正在编写有关gRPC 的教程。当我生成.pb.go文件时,我XXX_*在结构体中得到了某种类型。

这是我的consignment.proto文件:

syntax = "proto3";

package go.micro.srv.consignment;

service ShippingService {
    rpc CreateConsignment(Consignment) returns (Response) {}
}

message Consignment {
    string id = 1;
    string description = 2;
    int32 weight = 3;
    repeated Container containers = 4;
    string vessel_id = 5;
}

message Container {
    string id = 1;
    string customer_id = 2;
    string origin = 3;
    string user_id = 4;
}

message Response {
    bool created = 1;
    Consignment consignment = 2;
}

这是.pb.go文件中的结构。有人可以告诉我为什么XXX我的三种类型struct吗?该结构不应该反映我在自己中定义的内容proto吗?

type Consignment struct {
    Id                   string       `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
    Description          string       `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
    Weight               int32        `protobuf:"varint,3,opt,name=weight" json:"weight,omitempty"`
    Containers           []*Container `protobuf:"bytes,4,rep,name=containers" json:"containers,omitempty"`
    VesselId             string       `protobuf:"bytes,5,opt,name=vessel_id,json=vesselId" json:"vessel_id,omitempty"`
    XXX_NoUnkeyedLiteral struct{}     `json:"-"`
    XXX_unrecognized     []byte       `json:"-"`
    XXX_sizecache        int32        `json:"-"`
}

问题答案:

XXX_Protobuf库使用这些类型来存储未知字段。解码原型时,序列化数据中可能会有其他字段,库不知道该如何处理。例如,当数据的读取器和写入器使用原始文件的不同副本时,可能会发生这种情况。此功能有助于在客户端之间向后兼容,并在不同时间构建服务。

另外,XXX字段允许您公开扩展,它们是Proto2的一部分。它们在Proto3中被删除,以支持Any,但是库仍然需要支持它们。

至于你应该怎么做呢?我只是让他们独自一人,不要引用它们。您不需要设置它们,也不需要阅读它们。Go protobuf库将为您处理它们。



 类似资料:
  • 问题内容: 我正在尝试在Django应用程序中使用Python从SVG输入文件生成PDF。 我已经找到了两个可行的解决方案:cairo + rsvg和imagemagick,但是它们都有一个问题:它们具有一些我不想安装在服务器上的奇怪的依赖项,例如DBUS和GTK。 因此,我正在寻求另一种从SVG生成PDF的方法,而不必在服务器上安装所有这些愚蠢的依赖项。 问题答案: 您考虑过svglib吗? 它

  • 我在使用Swift4.2构建Xcode10.0时遇到以下错误:

  • 我正在使用Flink来处理我的流数据。 流媒体来自其他一些中间件,如Kafka、Pravega等。 说Pravega正在发送一些文字流,<代码>你好,世界,我的名字是 。 我需要的是三个过程步骤: 将每个单词映射到我的自定义类对象。 将对象映射到String。 将字符串写入文件:一个字符串写入一个文件。 例如,对于流,我应该得到五个文件。 这是我的代码: 此代码将所有结果输出到Flink日志文件。

  • 一个用于生成windows输入法的系统 , 包含ime输入框架,安装程序生成,txt文本文件解析。 程序开发分三个模块: 一、主IME文件,负责与系统IMM之间的通信,完成按键捕获、输入上屏、更改候选列表、打开关闭界面操作(已经开发完毕) 二、dme驱动,负责将用户输入的编码串转换为与码表相关的候选列表 三、skin驱动,负责显示状态栏、输入编码窗口、候选列表窗口、用户交互信息 多多输入平台公布

  • 我有一个问题,其中PdfWriter从iText7.0.4.0(。NET 4.5.1)为某些输入的PDF文件生成损坏的PDF文档。 详细说明,格式良好的段落的PDF文件没有问题。但是,如果输入的PDF包含不规则的内容(对于缺乏更好的词;请参考谷歌驱动器中的示例),PdfWriter会产生损坏的PDF文件;损坏,我的意思是文件可以打开,但它显示的空白页具有极高的缩放(在Adobe Reader XI

  • 昨天晚上我把Xcode SDK升级到第10版,然后发现我无法构建。 我得到了这个错误: 找不到生成输入文件:'/users/call01/library/developer/xcode/deriveddata/comp-lite-apps-gytvmossqptokeafrddvvmnlzadk/Build/products/debug-iphoneos/sg11.app/sg11 这在我升级之前