Flatbuffer documentation提到数据中的字段是可选的。
每个字段都是可选的:它不必出现在电线中 表示,您可以选择省略每个人的字段 对象
如果其中一个字段没有被写入,我对平板缓冲区如何区分两个相似字段感到困惑。
例如。
table Monster {
hp:short;
hpNew:short;
}
如果我只在数据文件中编写hpNew
,那么读者如何知道这是hpNew
或hp
?
答案 0 :(得分:2)
medium article解释说内存中的表是以对虚拟表的引用开始的,它告诉我们在哪里可以找到属性。
如果有未写入的字段(可选),则此虚拟表的偏移量将标记为0.
PS:看起来这就是表格成本高于结构的原因,也是为什么平板缓冲比Cap&#Proto(它不支持这个)更好的原因。