首页 > 解决方案 > FlatBuffers 和 NULL 值

问题描述

在 FlatBuffers 中存储 NULL 值的规范方法是什么?

我有

ExpirationDate     *int64

我理解为什么 FlatBuffers 没有定义 NULL。但我不明白如何正确处理。我应该有额外的布尔字段还是将值设为数组?

ExpirationDate     [int64]

对比

ExpirationDate     int64
ExpirationDateNull bool

对于表格,我也可以使用union.

标签: serializationflatbuffers

解决方案


第三个选项是struct NullableInt64 { i:int64 }然后在表中有一个类型的字段NullableInt64。当此字段不存在时,访问器函数将返回NULL. 并且因为它是一个结构,它将在线路上占用与裸 int64 相同的空间(它们都是 8 个字节并且内联存储在父级中)。


推荐阅读