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);
}
相关推荐
霖001 小时前
C++学习笔记三
运维·开发语言·c++·笔记·学习·fpga开发
巴伦是只猫2 小时前
【机器学习笔记 Ⅲ】1 无监督学习
笔记·学习·机器学习
武昌库里写JAVA3 小时前
vue3面试题(个人笔记)
java·vue.js·spring boot·学习·课程设计
LuckyLay5 小时前
使用 Docker 搭建 Go Web 应用开发环境——AI教你学Docker
前端·docker·golang
慕y2746 小时前
Java学习第二十四部分——JavaServer Faces (JSF)
java·开发语言·学习
WZF-Sang6 小时前
计算机网络基础——1
网络·c++·git·学习·计算机网络·智能路由器
楼田莉子7 小时前
数据学习之队列
c语言·开发语言·数据结构·学习·算法
hcvinh7 小时前
CANDENCE 17.4 进行元器件缓存更新
学习·缓存
每次的天空8 小时前
Android-重学kotlin(协程源码第二阶段)新学习总结
android·学习·kotlin
优乐美香芋味好喝8 小时前
2025年7月8日学习笔记——模式识别与机器学习绪论
笔记·学习·机器学习