use*_*782 5 serialization flatbuffers
在FlatBuffers中存储NULL值的规范方法是什么?
我有
ExpirationDate *int64
Run Code Online (Sandbox Code Playgroud)
我明白为什么FlatBuffers没有定义NULL。但我不知道如何正确处理。我应该有额外的布尔字段还是要为数组赋值?
ExpirationDate [int64]
Run Code Online (Sandbox Code Playgroud)
与
ExpirationDate int64
ExpirationDateNull bool
Run Code Online (Sandbox Code Playgroud)
对于表,我也可以使用union
。
第三个选项是struct NullableInt64 { i:int64 }
,然后在table中具有type字段NullableInt64
。如果不存在此字段,则访问器函数将返回NULL
。并且由于它是一个结构,它将在电线上与裸int64占用相同的空间(它们都是8个字节,并且以内联方式存储在父级中)。
用于存储 int32 / int64 等值。您可以直接将标量保留在表中。
但在你的情况下,你有一个间接,它可以通过平面缓冲区中的非标量创建的间接来模仿。
非标量是结构体、数组和表。
所以你可以尝试:
Struct IntPtr
{
val:int64
}
Table Expiration
{
ExpirationDate:IntPtr;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
227 次 |
最近记录: |