👩💻 Join our community of thousands of amazing developers!
这里涉及到要学习泛型是由于工程里面遇到一个问题,karmem 下在序列化和反序列化的时候所编写的代码在很大程度上是相似的于是解决方案就是为不同的结构体都写对应的序列化和反序列化函数来封装123456func DeserializeGeneralParams(byteParamsData []byte) (*common.GeneralParams, error) {generalParams := new(common.GeneralParams)generalParams.ReadAsRoot(karmem.NewReader(byteParamsData))return generalParams, nil}但是这样又存在一个问题,每次新增结构体都需要 copy 新的函数为它进行反序列化和序列化,那么就特别麻烦,所以考虑能不能通过泛型实现类似下面的操作123456func DeserializeKarmemStruct[T KarmemStruct](byteParamsData []byte) (*T, error) {generalParams := new(T)T.ReadA...