我拿到了一个 proto的名称 和 序列化后的数组. 如何反序列化出来. 例如 name := "proto.HeartBeatReq" byf :=[] ........ 如何创建一个 name 对应的对象,然后反序列化. 相当于实现一个函数 ``` func ToObj(name sring , buf []Byte) message{ // how to write this function } ``` Unmarshal 方法会用,但是需要一个具体对象作为参数. 在go 中该如何创建该对象. c++ 中是可以做到的. 例如 ``` google::protobuf::Message* message = NULL; const google::protobuf::Descriptor* descriptor = google::protobuf::DescriptorPool::generated_pool()->FindMessageTypeByName(typeName); if (descriptor) { const google::protobuf::Message* prototype = google::protobuf::MessageFactory::generated_factory()->GetPrototype(descriptor); if (prototype) { message = prototype->New(); } } return message; ```