性能上最好的办法应该是写个转换函数来转,一个字段一个字段的 copy 。
以前用 Java 写微服务的时候这种情况很常见。我们的解决办法是每一种转换都单独写一个函数,函数里面有的是一个字段一个字段的手动 set,有的是直接用反射来 copy ( Java 里通常叫 Bean Copy )。这样未来万一两个结构体的转换方式有变化,比如字段不是一一对应了,或者 copy 的时候需要做一些转换了,只改这个函数的实现就可以了。