DIFF.BLOG
New
Following
Discover
Jobs
More
Suggest a blog
Upvotes plugin
Report bug
Contact
About
Sign up  
Golang 泛型编程
1
·
Decision
·
June 18, 2023, 8:02 a.m.
Summary
这里涉及到要学习泛型是由于工程里面遇到一个问题,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...
Read full post on decision01.cn →
Submit
AUTHOR
RECENT POSTS FROM THE AUTHOR