今天遇到一个问题,想把pb转成map,如下所示:
func
所以很无奈,就不得不选择了稍微繁琐一点的方式(使用go的反射获得pb结构体的field,使用for循环将field转成map),如下代码所示:
func
因为私有变量不可以直接使用反射获取到内部的value,不得不进一步查询相关api,最后发现了Value.CanInterface(),通过调用这个方法,go会内部校验该变量是否为私有变量,是否可被导出,从而成功解决了我的问题,最终代码如下所示:
func
也算是比较好的一天吧,解决了问题,也新学了api的使用,也算是对go的理解更加加深了吧。