go下的Prototype学习笔记

本博文讲解prototype的学习笔记,内容包含了syntax、option go_package、message、service进行讲解,举例了常见写法。

文章目录

  • [1.syntax 声明语法版本](#1.syntax 声明语法版本)
  • [2.package 给当前的proto分配包名称](#2.package 给当前的proto分配包名称)
  • 3.option
  • 4.message
    • [4.1 切片数组](#4.1 切片数组)
    • [4.2 map](#4.2 map)
    • [4.3 类型嵌套](#4.3 类型嵌套)
  • [5. 消息定义](#5. 消息定义)
go 复制代码
syntax = "proto3"; // 声明编译器用的是prototype3
package person;
option go_package="/projectRPCTest3/pb/person;person";
message PersonReq{
    string name =1;
    int32 age = 2;
}
message PersonRes{
    string name = 1;
    int32 age = 2;
}
service SearchService {
    rpc Search(PersonReq) returns (PersonRes);
    rpc SearchIn(stream PersonReq) returns(PersonRes);
    rpc SearchOut(PersonReq) returns (stream PersonRes);
    rpc SearchIO(stream PersonReq) returns (stream PersonRes);
}

1.syntax 声明语法版本

go 复制代码
syntax = "proto3"; 

2.package 给当前的proto分配包名称

go 复制代码
package person;

3.option

go 复制代码
option go_package = "/projectRPCTest3/pb/person;person";

影响到实际效果是:

  • Go 包的路径:/projectRPCTest3/pb/person
  • Go 包名:person

4.message

go 复制代码
message PersonRes{
    string name = 1;
    int32 age = 2;
}

4.1 切片数组

go 复制代码
    repeated string hobbies = 3;  // 表示多个字符串
    repeated int32 scores = 4;    // 表示多个整数

4.2 map

go 复制代码
 map<string, int32> scores = 3;  // 例如,保存各科成绩

4.3 类型嵌套

go 复制代码
Message User {
	int32 id = 1;
	string name = 2;
}
Message Student{
	int32 id = 1;
	User user = 2;
	int32 score = 3;
}

5. 消息定义

go 复制代码
service SearchService {
    rpc Search(PersonReq) returns (PersonRes);
    rpc SearchIn(stream PersonReq) returns(PersonRes);
    rpc SearchOut(PersonReq) returns (stream PersonRes);
    rpc SearchIO(stream PersonReq) returns (stream PersonRes);
}
相关推荐
觉醒大王1 小时前
强女思维:着急,是贪欲外显的相。
java·论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
YCY^v^2 小时前
JeecgBoot 项目运行指南
java·学习
云小逸2 小时前
【nmap源码解析】Nmap OS识别核心模块深度解析:osscan2.cc源码剖析(1)
开发语言·网络·学习·nmap
JustDI-CM3 小时前
AI学习笔记-提示词工程
人工智能·笔记·学习
悟纤3 小时前
学习与专注音乐流派 (Study & Focus Music):AI 音乐创作终极指南 | Suno高级篇 | 第33篇
大数据·人工智能·深度学习·学习·suno·suno api
爱写bug的野原新之助3 小时前
加密摘要算法MD5、SHA、HMAC:学习笔记
笔记·学习
ZH15455891313 小时前
Flutter for OpenHarmony Python学习助手实战:Web开发框架应用的实现
python·学习·flutter
百锦再3 小时前
Vue高阶知识:利用 defineModel 特性开发搜索组件组合
前端·vue.js·学习·flutter·typescript·前端框架
CappuccinoRose4 小时前
JavaScript 学习文档(二)
前端·javascript·学习·数据类型·运算符·箭头函数·变量声明
A9better4 小时前
C++——不一样的I/O工具与名称空间
开发语言·c++·学习