开发学院,分享开发教程和最新动态
章节列表 什么是ProtobufProtobuf3 定义数据类型Protobuf3 标量值类型Protobuf3 缺省值Protobuf3 枚举Protobuf3 使用其他消息类型Protobuf3 嵌套类型Protobuf3 更新消息类型Protobuf3 未知字段Protobuf3 Any类型Protobuf3 OneofProtobuf3 MapsProtobuf3 包Protobuf3 定义服务Protobuf3 JSON映射Protobuf3 可选项Protobuf3 生成属于自己的类Protobuf 风格指南Protobuf 编码(1)Protobuf 编码(2)Protobuf 编码(3)Protobuf 技术Protocol Buffer C++实例教程: 为什么使用Protocol Buffer?Protocol Buffer C++实例教程: 定义协议格式Protocol Buffer C++实例教程: 编译Protocol BufferProtocol Buffer C++实例教程: Protocol Buffer APIProtocol Buffer C++实例教程: 发送消息Protocol Buffer C++实例教程: 读取消息Protocol Buffer C++实例教程: 扩展Protocol BufferProtocol Buffer C++实例教程: 优化技巧和高级用法Protocol Buffer C#实例教程: 前言Protocol Buffer C#实例教程:定义协议格式Protocol Buffer C#实例教程:编译Protocol Buffer Protocol Buffer C#实例教程:解析和序列化Protocol Buffer Go实例教程:前言Protocol Buffer Go实例教程:定义协议格式Protocol Buffer Go实例教程:编译Protocol BufferProtocol Buffer Go实例教程:读写消息Protocol Buffer JAVA实例教程:前言Protocol Buffer JAVA实例教程:定义协议格式Protocol Buffer JAVA实例教程:编译Protocol BufferProtocol Buffer JAVA实例教程:Protocol Buffer APIProtocol Buffer JAVA实例教程:写消息Protocol Buffer JAVA实例教程:读消息Protocol Buffer JAVA实例教程:扩展Protocol BufferProtocol Buffer Python实例教程:前言Protocol Buffer Python实例教程:定义消息格式Protocol Buffer Python实例教程:编译Protocol BufferProtocol Buffer Python实例教程:Protocol Buffer APIProtocol Buffer Python实例教程:写消息Protocol Buffer Python实例教程:读取MessageProtocol Buffer Python实例教程:扩展Protocol Buffer

Protobuf 风格指南

Protobuf 风格指南

  本文档为 .proto文件提供了样式指南。通过遵循这些约定,您将使您的协议缓冲区消息定义及其对应的类一致且易于阅读。

消息和字段名称

  使用CamelCase (首字母大写)作为消息名,例如SongServerRequest。字段名称使用下划线分隔名称,例如song_name。

message SongServerRequest {
  required string song_name = 1;
}

  对字段名使用这种命名约定可以为您提供如下访问器:

C++:

  const string& song_name() { ... }
  void set_song_name(const string& x) { ... }

Java:

  public String getSongName() { ... }
  public Builder setSongName(String v) { ... }

枚举

  枚举类型名使用CamelCase (带首字母大写),值名使用CAPITALS_WITH_UNDERSCORES:

enum Foo {
  FIRST_VALUE = 0;
  SECOND_VALUE = 1;
}

  每个枚举值应以分号结束,而不是逗号。

服务

  如果您的.proto定义了一个RPC服务,那么您应该对服务名称和任何RPC方法名称都使用CamelCase (带有初始大写) :

service FooService {
  rpc GetSomething(FooRequest) returns (FooResponse);
}

  除非另有说明,本页面的内容是根据知识共享属性3.0许可证许可的,代码示例是根据Apache 2.0许可证许可的。有关详细信息,请参见谷歌的网站策略。Java是甲骨文和/或其附属公司的注册商标。