一般来说,我们会把头部和实际消息分开定义,因为内部工作的worker之间发送消息有些额外的字段,这些字段不属于实际的消息.这时候我们会把worker消息中一个字段定义为interface{}或者object,这个字段表示任意的实际消息. 一切看起来很完美,但是问题来了,当我们用msgpack库decode消息到结构体的时候,这个字段变成了一堆object的集合体,这时候,我们不得不再写一个函数把这些object,一个一个地复制到实际消息的结构体上,而这个函数是及其复杂的,很容易写错,而且性能也不…