我们已经在使用具有类似方案的FlatBuffer
namespace potter;
union Magic { Weapon, Wand }
table Weapon {
name:string;
power:int;
}
table Wand {
make:string;
animal:string;
}
table MagicHolder {
name:string;
age:int;
magic:Magic;
}
root_type MagicHolder;
现在,如果我们要添加两件事。
level:string
在MagicHolder
Wand
和key:value
类型下,其中key:string
和value
可以是string or int or float or bool
我正在尝试的是
table MagicHolder {
name:string;
age:int;
level:string; /*new addition*/
magic:Magic;
}
table KeyValue {
key:string;
vint:int;
vfloat:float;
vbool:bool;
vstring:string;
vtype:string; /* since I cannot differentiate between bool set or not, trying to store type here */
}
table Wand {
make:string;
animal:string;
kv:KeyValue;
}
这是最好的方法吗?优点/缺点是什么。.其他建议的方法可以更有效地完成此新添加操作