假设我有以下 flatbuffer IDL 文件:
table Monster {
mana:short = 150;
inventory:[ubyte]; // Vector of scalars.
}
而且我想Monster
在缓冲区中序列化一个由 2 个对象组成的数组。
显然,在序列化数据时可以为整个缓冲区创建以下内存布局:
ArrayOfUBytesForInventoryOfMonster1|ArrayOfUBytesForInventoryOfMonster2|Monster1Data|Monster2Data
这意味着现在所有inventory
字段都位于一个连续的内存位置。
然而,在球场上也可以做到这一点mana
吗?即我想用这个内存表示序列化我的对象:
ArrayOfUBytesForInventoryOfMonster1|ArrayOfUBytesForInventoryOfMonster2|Monster1ManaValue|Monster2ManaValue|Monster1Data|Monster2Data.
其效果是将所有“法力”值转换为内存中的原始数组。
可以用 Flatbuffers 做到这一点吗?似乎字段只能在对象本身启动后进行序列化