当前位置: 首页 > article >正文

【Linux学习笔记】protobuf相关操作

判断一个字段在不在请求中

有两种方法判断一个字符在不在请求中,直接判断和通过reflection动态地判断

syntax = "proto3";
message MyMessage {
	int my_int_field = 1;
}
  1. 直接判断
MyMessage message;
message.set_my_int_field(123);
if (message.has_my_int_field()) {
	int value = message.my_int_field();
}
  1. 反射
    FindFieldByName找到则返回消息中该字段的描述,找不到则返回null
int main() {
	MyMessage message;
	message.set_my_int_field(123);
	const google::protobuf::Reflection* reflection = message.GetReflection();
	const google::protobuf::FieldDescriptor* field = message.GetDescriptor()->FindFieldByName("my_int_field");
	if (field && reflection->HasField(message, field)) {
		int value = reflection->GetInt32(messsage, field);
	}
}

http://www.kler.cn/a/288986.html

相关文章:

  • Java Spring Boot 项目中嵌入前端静态资源:完整教程与实战案例
  • 2014年IMO第4题
  • 一区牛顿-拉夫逊算法+分解+深度学习!VMD-NRBO-Transformer-GRU多变量时间序列光伏功率预测
  • 【LeetCode】394、字符串解码
  • 2023年下半年软考信息安全工程师案例分析及答案解析
  • VUE3+django接口自动化部署平台部署说明文档(使用说明,需要私信)
  • 数仓基础(九):各大公司实时数仓实践
  • Go锁 详解
  • k8s-使用Network Policies实现网络隔离
  • (二)、软硬件全开源智能手表,可全面高精度采集生命体征数据,进行健康检测。(HealthyPi Move)
  • 【Java中的三元运算符】
  • 书法图片自动扣字的批处理
  • leecode 31.下一个排列(Golang)
  • 深度学习100问27:什么是截断的BPTT
  • mysql的组从复制
  • 检测文件解析漏洞的工具
  • 技术Leader在训练团队思考力中的核心职责
  • MySQL常用的查询优化分析方法有哪些?
  • 【Qt】 QComboBox | QSpinBox
  • 【qt】qss使用
  • 钢铁百科:A633GrE钢板材质、A633GrE力学性能、A633GrE执行标准
  • JAVA - 关于防重复提交探讨
  • uniapp scroll-view滚动触底加载 height高度自适应
  • centos7 安装python3.12.5
  • 【链表】环形链表
  • Linux-centos7目录结构