FlatBuffers中root type的作用是什么?我的理解是否有遗漏?
FlatBuffers root_type 特性解读
你的理解基本准确,root_type确实属于偏遗留的特性,多数场景下并非必需,仅在两类特定场景中有用:
- 需借助root_type的名称(而非其内容)创建部分对象时,比如嵌入二进制Schema的场景
- 只为root_type生成语法糖API,这类API仅用于简化调用,并非功能必需
另外你提到的用空table作为root_type的场景也是合理的补充,比如你写的这段代码:
table Foo { ... } table Bar {...} ... // empty root at the end to make flatbuffers happy table Fbs {} root_type Fbs
将其命名为Fbs是为了让生成的Schema更规范,最终会生成FbsBinarySchema;当然也可以直接用文件名生成MyFileBinarySchema,这两种方式都没问题。
内容的提问来源于stack exchange,提问作者wibotwi
相关产品推荐
相关产品推荐

