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);
}
相关推荐
牛奶咖啡139 分钟前
学习设计模式《八》——原型模式
学习·设计模式·原型模式·浅度克隆·深度克隆·c#的克隆·原型管理器
每次的天空41 分钟前
Android学习总结之Binder篇
android·学习·binder
海星船长丶1 小时前
【HCIP】----OSPF综合实验
网络·学习·智能路由器·hcip
徊忆羽菲1 小时前
学习整理使用php将SimpleXMLElement 对象解析成数组格式的方法
开发语言·学习·php
Camellia03111 小时前
嵌入式学习--江协51单片机day3
嵌入式硬件·学习·51单片机
李匠20242 小时前
C++负载均衡远程调用学习之实时监测与自动发布功能
c++·学习
柯南二号3 小时前
Go使用Gin写一个对MySQL的增删改查服务
mysql·golang·gin
山禾女鬼0013 小时前
从Windows到Mac的过渡:学习笔记与心得
windows·学习·macos
海尔辛3 小时前
学习黑客MAC 地址
网络·学习·macos
小猪佩奇TONY3 小时前
Linux 内核学习(6) --- Linux 内核基础知识
linux·学习