ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Protoful 安装

2021-09-27 23:32:53  阅读:186  来源: 互联网

标签:int32 string proto package csharp go Protoful 安装


proto 文件

syntax = "proto3";
// 字段的 tag
// 1到15 只占用一个字节,所以应该用在不频繁使用的字段上。

import "data.proto" //引用其他的包

package my.project; // c# namespace My.Project

option csharp_namespace = "My.WebApis"; // C# 的话生成的命名空间就是 =My.WebApis,其他的还是 my.project



message Preson {
  int32 id = 1;
  string name = 2;
  float height = 3;
  float weight = 4;
  bytes avatar = 5;
  string email = 6;
  bool email_verified = 7;
  repeated string phone_numbers =
      8; //数组的话,使用paked,(一个人可以有多个电话号码)

  Gender gender = 11;
  Date birthday = 12;

  repeated Address addresses = 13; //方式可能是个复数

  reserved 9, 10, 20 to 100; //保留的tag,不能再用了
  reserved "foo", "bar";     //保留的字段

  enum Gender {
    option allow_alias = true; //起好别名了
    NOT_SPECIFIED = 0;         //未指定
    FEMALE = 1;                //男
    MALE = 2;                  //女

    WOMAN = 1; //男
    MAN = 2;   //女
  }

  message Address {
    string province = 1;
    string city = 2;
    string zip_code = 3;
    string street = 4;
    string number = 5;
  }
}

引用的 data 包

syntax = "proto3";
message Date {
  int32 year = 1;
  int32 month = 2;
  int32 day = 3;
}

生成文件

生成csharp文件的命令

protoc first.proto --csharp_out=csharp

下载 go 的依赖

go get -u github.com/golang/protobuf/protoc-gen-go

简单例子

syntax = "proto3";
// package example.first;
package src;
option go_package = "./src"; //输出目录
message PresonMessage {
  int32 id = 1;
  bool is_adult = 2;
  string name = 3;
  repeated int32 lucky_number = 4;
}

生成go的 proto 命令

protoc --go_out=.  person.proto   // 执行命令

标签:int32,string,proto,package,csharp,go,Protoful,安装
来源: https://www.cnblogs.com/rush-peng/p/15345891.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有