【发布时间】:2017-10-24 18:37:38
【问题描述】:
如何使任何结构对象包含结构本身未定义的任何字段。例如。
struct Point {
1: required x i32
2: optional y i32
}
不,如果有人也在 struct 中传递 z 变量,它会传递。那么,我怎样才能让结构体处理额外的字段呢?
【问题讨论】:
标签: thrift
如何使任何结构对象包含结构本身未定义的任何字段。例如。
struct Point {
1: required x i32
2: optional y i32
}
不,如果有人也在 struct 中传递 z 变量,它会传递。那么,我怎样才能让结构体处理额外的字段呢?
【问题讨论】:
标签: thrift
关于 Thrift 的一个关键点是 IDL 预先定义了所有内容,因此生成的代码非常紧凑且切中要害(因此速度很快)。所以一般来说,这在设计上是不可能的。
尽管将其他数据视为一种 blob(文本或二进制)并通过其他方式对它们进行反/序列化,这可能是一种选择:
struct Point {
1: x i32
2: y i32
3: binary more_data
}
more_data 字段可以被其他一些 Thrift 步骤序列化,或者它可以是 sth。完全不同,比如压缩的 JSON 或其他最适合的东西。
这种方法的明显缺点是,您需要两个步骤来进行序列化和反序列化,其中只有一个步骤:您需要一个用于内部 blob 内容,一个用于外部 Thrift 胶囊。无论这是否是您的用例的问题 - 我不能告诉您。
【讨论】: