Flatbuffers:字段名称不同但偏移量相同
Flatbuffers: Different field names but same offset
TLDR:序列化后更改了规范中的字段名称;反序列化的对象仍然具有相同的值,所以一切都很好;但我应该注意它们的副作用吗?
我在 .fbs
文件中定义了平面缓冲区规范。我将我的对象序列化到此规范定义的平面缓冲区中。
现在,我更改了 table 中的一个字段的名称。假设我将“foo”更改为“bar”
我将平面缓冲区反序列化为我的编程语言的对象。
我发现为字段 foo
插入的相同值现在是 bar
的值。
这就是我想要的行为。据我了解,值是根据字段的偏移量确定的,因此字段的实际名称无关紧要。
但是,我想知道,我所做的是否有任何副作用?
是的,您完全可以更改字段的名称。唯一的副作用是你破坏了生成的API:任何调用者都必须更改为使用新名称。
您的问题也在 https://google.github.io/flatbuffers/flatbuffers_guide_writing_schema.html 下的“架构演化示例”和其他问题中得到了解答。
TLDR:序列化后更改了规范中的字段名称;反序列化的对象仍然具有相同的值,所以一切都很好;但我应该注意它们的副作用吗?
我在 .fbs
文件中定义了平面缓冲区规范。我将我的对象序列化到此规范定义的平面缓冲区中。
现在,我更改了 table 中的一个字段的名称。假设我将“foo”更改为“bar”
我将平面缓冲区反序列化为我的编程语言的对象。
我发现为字段 foo
插入的相同值现在是 bar
的值。
这就是我想要的行为。据我了解,值是根据字段的偏移量确定的,因此字段的实际名称无关紧要。
但是,我想知道,我所做的是否有任何副作用?
是的,您完全可以更改字段的名称。唯一的副作用是你破坏了生成的API:任何调用者都必须更改为使用新名称。
您的问题也在 https://google.github.io/flatbuffers/flatbuffers_guide_writing_schema.html 下的“架构演化示例”和其他问题中得到了解答。