我有一个非常复杂的结构,其中包含许多具有不同实现的接口。为了在 gob 中编码/解码该结构,我似乎必须注册每个可能用于每个接口的实现。所以我最终得到了一种方法:
func registerImplementations() {
gob.Register(&Type1{})
gob.Register(&Type2{})
gob.Register(&Type3{})
gob.Register(&Type4{})
....
}
我需要在编码/解码之前调用它。有没有更简单的方法来做到这一点?或者我应该研究生成这种方法的可能性,因为跟踪所有可能的实现非常乏味?