首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FlatBuffers和空值

FlatBuffers和空值
EN

Stack Overflow用户
提问于 2018-12-16 23:56:16
回答 2查看 1K关注 0票数 6

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

我有过

代码语言:javascript
复制
ExpirationDate     *int64

我理解为什么FlatBuffers没有定义NULL。但我不知道如何正确处理这一点。我应该有额外的布尔域,还是让value成为一个数组?

代码语言:javascript
复制
ExpirationDate     [int64]

vs

代码语言:javascript
复制
ExpirationDate     int64
ExpirationDateNull bool

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

EN

回答 2

Stack Overflow用户

发布于 2018-12-17 01:10:26

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

票数 6
EN

Stack Overflow用户

发布于 2018-12-17 01:09:07

用于存储值,如int32 / int64等,您可以直接将标量保存在表中。

但在您的例子中,您有一个间接性,它可以通过平面缓冲区中的非标量创建的间接性来模仿。

非标量是struct、array和table。

所以你可以试试:

代码语言:javascript
复制
Struct IntPtr 
{ 
val:int64
} 

Table Expiration 
{ 
ExpirationDate:IntPtr; 
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53803880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档