有时候只需返回key-value 格式数据,go 的map 或python 的dict,而原有的Hash() 返回的是一个带着key 查询顺序的列表。
reply.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
func (r *Reply) Dict() map[string]string {
dict := make(map[string]string)
if len(r.Data) < 2 {
return dict
}
for i := 0; i < (len(r.Data) - 1); i += 2 {
dict[r.Data[i]] = r.Data[i+1]
}
return dict
}
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
if rs := conn.Cmd("multi_get", "aa", "bb", "cc"); rs.State == "ok" {
fmt.Println("multi_get OK")
for _, v := range rs.Hash() {
fmt.Println("\t", v.Key, v.Value)
}
}
if rs := conn.Cmd("multi_get", "cc", "bb", "aa"); rs.State == "ok" {
fmt.Println("multi_get OK")
for k, v := range rs.Dict() {
fmt.Println("\t", k, v)
}
}
输出:
1
2
3
4
5
6
7
8
multi_get OK
aa newaa2
bb newbb2
cc newaa2
multi_get OK
aa newaa2
cc newaa2
bb newbb2
修改后的代码 https://github.com/ego008/hissdb
本文网址: https://golangnote.com/topic/50.html 转摘请注明来源