我认为struct并不是为了单纯储存KV数据結构而设计出来的.
参考一些开源框架和内置模块,struct定义的数据结构一般都是比较复杂的数据结构.对比一下两个比较典型的用法,
可以看出来,URL
这個结构体,这里将会出现什么属性是我们已知的,相对可控的,一定程度上可以对标其他语言的class.
而keyvalue怎么用s
在url
包中是储存表单的,使用者会存入什么樣的kv数据是设计者不知道的,所以这里必然是使用map.
很多时候大家喜欢定义一个结构体来解析已知结构的json,也有很多人喜欢把json解析到map[string]interface{},我个人认为結构体的可读性是更强一点的,但是不够灵活,而map虽然足够灵活,但是在可读性上差一点,二者都可以使用的情况下,用结构体我觉得更好一点.