目前的蠢办法就是直接调用值,如果是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值是否存在
主要问题在于,你用的 哪个版本的proto
?
proto2
支持optional
字段,是存在has_field
方法的,不同语言命名可能不同。
proto3
自3.15版本之后,才支持optional
字段,使用同proto2
,请更新。关于xlua
语言的,可以去官方找。
学习一下