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

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日
  • 展开全部