Little丶Seven 2022-03-17 10:22 采纳率: 0%
浏览 132
已结题

Xlua使用Proto协议如何判断一个Optional字段的值是否存在

目前的蠢办法就是直接调用值,如果是nil那就是不存在,有没有类似lua-protobuff那样的判断接口 Data:hasProperty("x")

这是我加载pb和解析proto的代码

local pb = require "pb"
local protoc = require "Battle/Internal/protoc"
local pcNew = protoc.new()

local bytes = x:LoadBytes()
assert(pcNew:load(x,"x.proto"))
local SCEnterBattle = assert(pb.decode('x', bytes))
SCEnterBattle.battleId是否存在?
battleId这个协议字段是Optional的
如何判断SCEnterBattle.battleId值是否存在
  • 写回答

2条回答 默认 最新

  • Kiloveyousmile 2022-03-18 15:53
    关注

    主要问题在于,你用的 哪个版本的proto?

    proto2支持optional字段,是存在has_field方法的,不同语言命名可能不同。

    proto3自3.15版本之后,才支持optional字段,使用同proto2,请更新。关于xlua语言的,可以去官方找。

    评论

报告相同问题?

问题事件

  • 系统已结题 3月25日
  • 修改了问题 3月17日
  • 修改了问题 3月17日
  • 修改了问题 3月17日
  • 展开全部

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办
  • ¥15 vue2登录调用后端接口如何实现