在FlatBuffers中存储空值的规范方法是什么?
我有过
ExpirationDate *int64我理解为什么FlatBuffers没有定义NULL。但我不知道如何正确处理这一点。我应该有额外的布尔域,还是让value成为一个数组?
ExpirationDate [int64]vs
ExpirationDate int64
ExpirationDateNull bool对于表格,我也可以使用union。
发布于 2018-12-17 01:10:26
第三个选项是struct NullableInt64 { i:int64 },然后在表中有一个NullableInt64类型的字段。如果此字段不存在,则访问器函数将返回NULL。因为它是一个结构,所以它将占用与裸int64相同的空间(它们都是8个字节,并且以内联方式存储在父级中)。
发布于 2018-12-17 01:09:07
用于存储值,如int32 / int64等,您可以直接将标量保存在表中。
但在您的例子中,您有一个间接性,它可以通过平面缓冲区中的非标量创建的间接性来模仿。
非标量是struct、array和table。
所以你可以试试:
Struct IntPtr
{
val:int64
}
Table Expiration
{
ExpirationDate:IntPtr;
}https://stackoverflow.com/questions/53803880
复制相似问题