当使用gob通过导线对结构进行序列化时,为什么我们需要Register()作为传输结构内部接口的任何字段?

时间:2018-07-11 16:13:31

标签: go serialization marshalling unmarshalling gob

如果我们要发送

type ABC struct{
      i interface{}

   }

gob要求我们注册隐藏在界面后面的具体类型{}。 为什么gob无法使用反射本身来识别字段中的基础具体类。

也就是说,我们需要使用Register方法告诉gob具体的类型是什么。

鉴于方法签名看起来像Register(value interface{}),gob已经使用反射来完全识别传递给方法的类型。

为什么不在运行时遍历实例化的ABC结构并自动执行注册?

0 个答案:

没有答案