关于 `map[string]string` 和 `map[string]map[string]string` 的抉择
数据字段:shop>member>name(都是string)
假设有10万左右shop,每个shop有1千左右member
以下两个方案哪个更优呢
// ShopMemberName1 方案一
type ShopMemberName1 map[string]string
func (m ShopMemberName1) GetMemberName(shop string,member string) (string,bool) {
name,ok:= m[shop+member]
return name,ok
}
// ShopMemberName2 方案二
type ShopMemberName2 map[string]map[string]string
func (m ShopMemberName2) GetMemberName(shop string,member string) (string,bool) {
if sm,ok:=m[shop];ok{
name,ok:= sm[member]
return name,ok
}
return "",false
}
关于 LearnKu
虽然
map[string]string结构在内存占用上可能更小,但是后续的删除可能影响,比如我要删掉某member全部。另外就是考虑哈希冲突会不会变多。方案2,
map[string]map[string]string更加灵活直观一些,去增加member,修改member都会更方便吧