SF
深入理解Go
深入理解Go
注册登录
关注博客
注册登录
主页
关于
RSS
Go 每日一库之 reflect
darjun
2021-06-01
阅读 17 分钟
4.3k
反射是一种机制,在编译时不知道具体类型的情况下,可以透视结构的组成、更新值。使用反射,可以让我们编写出能统一处理所有类型的代码。甚至是编写这部分代码时还不存在的类型。一个具体的例子就是fmt.Println()方法,可以打印出我们自定义的结构类型。
Go 每日一库之 mapstructure
darjun
2020-07-30
阅读 9 分钟
18k
mapstructure用于将通用的map[string]interface{}解码到对应的 Go 结构体中,或者执行相反的操作。很多时候,解析来自多种源头的数据流时,我们一般事先并不知道他们对应的具体类型。只有读取到一些字段之后才能做出判断。这时,我们可以先使用标准的encoding/json库将数据解码为map[string]interface{}类型,然后根据标...
Go 每日一库之 copier
darjun
2020-03-13
阅读 4 分钟
2.7k
上一篇文章介绍了mergo库的使用,mergo是用来给结构体或map赋值的。mergo有一个明显的不足——它只能处理相同类型的结构!如果类型不同,即使字段名和类型完全相同,mergo也无能为力。今天我们要介绍的copier库就能处理不同类型之间的赋值。除此之外,copier还能: