Protobuf 判断某个值是否在一个枚举值中
判断某个值是否在一个枚举值中
proto文件中有如下定义:
enum EquipSlotID // 装备特定位置
{ESI_ARM = 0; // 武器ESI_GEM = 1; // 宝物ESI_CLOTHES = 2; // 衣服ESI_BELT = 3; // 腰带ESI_JEWELRY = 4; // 饰品
}
以前的做法是:
std::set<int> ReserveEquipSlots = {ESI_ARM, ESI_GEM, ESI_CLOTHES, ESI_BELT, ESI_JEWELRY};
...
int slotID = -1;
if (ReserveEquipSlots.find(slotID) == ReserveEquipSlots.end())
{...
}
Protobuf中:
其实,protobuf在生成*.pb.h、*.pb.c时,已经在其中添加了全局函数:
SkillSlotID_IsValid,其实现比较简单:
bool EquipSlotID_IsValid(int value) {switch (value) {case 0:case 1:case 2:case 3:case 4:return true;default:return false;}
}
所以,无需自己再定义一个容器来调用其find函数,直接调用全局的SkillSlotID_IsValid即可。
Protobuf 判断某个值是否在一个枚举值中相关推荐
- 判断某值是否属于枚举类中的值_编写高质量可维护的代码之优化逻辑判断
if else.switch case 是日常开发中最常见的条件判断语句,这种看似简单的语句,当遇到复杂的业务场景时,如果处理不善,就会出现大量的逻辑嵌套,可读性差并且难以扩展. 编写高质量可维护的代 ...
- C# 声明枚举、枚举值描述 获取枚举值字符串 根据枚举获取枚举值描述
一.声明枚举值.枚举值描述 using System.ComponentModel;public enum status {/// <summary>/// 取消/// </summ ...
- java动态添加枚举值,实现枚举值的动态扩展
直接上代码: 加入lombok依赖: <dependencies><dependency><groupId>junit</groupId><art ...
- Day 12:枚举值、枚举类
jdk1.5新特性之-----枚举 问题:某些方法所接收的数据必须是在固定范围之内的, 解决方案: 这时候我们的解决方案就是自定义一个类,然后是私有化构造函数,在自定义类中创建本类的对象对外使用. ...
- Java –比较枚举值
在Java中,可以使用==运算符比较Enum值. 1. Java枚举示例 Language.java package com.mkyong.javapublic enum Language {JAVA ...
- C# 简单判断枚举值是否被定义
C#枚举类有自带的函数用来判断是否被定义: bool IsDefined(Type enumType, object value) IsDefined(Type, Object) 返回一个布尔值,该值 ...
- 如何优雅地实现判断一个值是否在一个集合中?
如何判断某变量是否在某个集合中?注意,这里的集合可能并不是指确定的常量,也可能是变量. 版本0 #include int main(){int a = 5;if(a == 1 || a == 2 || ...
- 输入今天是星期几的序号,给今天和昨天赋予枚举值,并输出昨天是星期几的枚举值
<程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p165 习题6 4.输入今天是星期几的序号(0~6代表星期天至星期六),给今天和昨天赋予枚举值,并输出 ...
- mysql 改变枚举值_mysql 改变数据类型为枚举不成功?
很明显的错误啊,你表里面内容有误,可以先将列gender的内容全部update成female和male,然后再运行这条sql脚本. 以下内容来源:MYSQL中 ENUM 类型 ENUM类型 ENUM ...
- php子域枚举,PHP中实现多值枚举
PHP 枚举 前面的文章中我们介绍了PHP枚举的使用,最近对项目整体进行重构,增加了枚举类的封闭性和安全性,尤其对多值枚举进行了优化. 枚举类 PHPEnum包含三个核心枚举类,分别为: 基础枚举 – ...
最新文章
- 目标检测(或分隔)算法Mask R-CNN简介
- 迷茫在路口——致我的2014
- pdf与图片互相转换
- DOM Element节点类型详解
- 美国知名DJ 3LAU以1160万美元出售全球首套音乐专辑NFT藏品
- 预训练语言模型论文分类整理
- mysql sqlserver alter语句区别_SQL ALTER
- python在主线程上下文执行_python进线程
- 微信小程序跳转微信小程序的实现
- linux php adodb,【原创】Linux下php使用adodb对sql Server访问配置
- 参考文献格式字号字体_论文格式字体字号要求
- 丽江旅游线路规划丽江游玩小贴士丽江游玩攻略花费
- 【使用Mac制作手写签名的方法】
- 【Java】实现多线程计算阶乘(完整版)
- 人工智能没成果,年底的PPT怎么写?腾讯科学家张潼离职的后续讨论
- Hermez官方文档翻译(二)开发者-开发指南
- 计算机考试分值2017,2017计算机二级考试应试技巧
- 什么是蜜罐?底层原理是什么?
- 【Java】1、Java 基础入门
- acm计算机教育汇刊,ACM 全文数据库
热门文章
- 一步步完成FastDFS + Spring MVC上传下载整合示例
- SVN Attempted to lock an already-locked dir异常解决方法
- 解决Weblogic与Hibernate的jar冲突
- php 给图片加水印
- Java 编程需要注意的细节
- linux和windows下,C/C++开发的延时函数,sleep函数
- NUMA与英特尔下一代Xeon处理器学习心得(5)
- 点对点(P2P)多线程断点续传的实现(转贴)
- 7.大数据架构详解:从数据获取到深度学习 --- 批处理技术
- 53. PHP 伪静态(2)