请教大佬们一个 go 数据结构问题

2019-08-01 09:55:50 +08:00
 imherer

假如我有一个函数计算出来的结果如下:

{
	"android": {
		"1.01": {
			"101": 0
		}
	},
	"ios": {
		"1.01": {
			"101": 0,
			"102": 2
		},
		"1.02": {
			"101": 0
		}
	}
}

其中只有androidios这 2 个 key 是已知的,里面两层的 key 及 key 的数量都是未知的

我现在只能用 map 嵌套的方式来表达这个值,即这样map[string]map[string]map[string]int

但是这样感觉可读性太差了,大佬们还有别的方式吗?

或者说是在设计上应该尽量避免掉这种情况

大佬们在实际工作中这种 map 嵌套的情况常用吗?

2431 次点击
所在节点    Go 编程语言
8 条回复
TypeErrorNone
2019-08-01 10:07:02 +08:00
不是大佬
应该避免这种设计,里面包裹成数组方式
dic
2019-08-01 10:10:12 +08:00
解析到 map[string]interface{} ,用的时候做类型断言
imherer
2019-08-01 10:10:43 +08:00
@TypeErrorNone 谢谢。 但是这种里面套了 2 层 map 如果换成数组的话感觉会是 map 套一个数组然后数组里再套一个数组😂
flxxy
2019-08-01 10:12:42 +08:00
接口就是这个时候用的鸭
darklowly
2019-08-01 10:13:16 +08:00
我所在的公司,要是谁这么设计结构,我要杀人的。
imherer
2019-08-01 10:13:53 +08:00
@dic
@flxxy 一开始也是想到用 interface 的,但是一想到用的时候要断言 就想直接定义好得了。。。
TypeErrorNone
2019-08-01 11:35:51 +08:00
{
"android":{
"version":"1.01",
"sons":[
{
"version":101,
"val":0
},
{
"version":102,
"val":1
}
]
}
}
abel1989
2019-08-27 08:39:09 +08:00
楼上的牛 p

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/588070

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX