前端框架选型是企业提升开发效率与用户体验的关键因素
633
2022-11-03
go 有序map,用于json输出有序key的对象和后端有序循环map取值
OrderMap
go 有序map,用于json输出有序key的对象和后端有序循环map取值
测试
后台循环
func TestOrderMap_Range(t *testing.T) { // 要加载的map data := make(map[string]interface{}, 0) data["1"] = "ha1" data["2"] = "ha2" data["10"] = "h10" data["3"] = "ha3" // key转数字,从小到大排序 less := func(i, j interface{}) bool { ii, _ := strconv.Atoi(fmt.Sprint(i)) jj, _ := strconv.Atoi(fmt.Sprint(j)) return ii < jj } // 有序map对象 om := NewOrderMap(less) err := om.LoadStringMap(data) if err != nil { t.Error(err) return } om.Range(func(k, v interface{}) bool { t.Logf("%v:%v \n", k, v) return true }) t.Log("map长度 ", om.Len())}=== RUN TestOrderMap_Range--- PASS: TestOrderMap_Range (0.00s) map_test.go:92: 1:ha1 map_test.go:92: 2:ha2 map_test.go:92: 3:ha3 map_test.go:92: 10:h10 map_test.go:96: map长度 4PASSok command-line-arguments 0.005s
JSON序列化
func TestOrderMap_OrderMap(t *testing.T) { // 要加载的map data := make(map[string]interface{}, 0) data["1"] = "ha1" data["2"] = "ha2" data["10"] = "h10" data["3"] = "ha3" // key转数字,从小到大排序 less := func(i, j interface{}) bool { ii, _ := strconv.Atoi(fmt.Sprint(i)) jj, _ := strconv.Atoi(fmt.Sprint(j)) return ii < jj } // 有序map对象 om := NewOrderMap(less) err := om.LoadStringMap(data) if err != nil { t.Error(err) return } // 设置一个值 err = om.Set("1", "这是设置后的值") t.Log(err) err = om.Set("8", "ha8") t.Log(err) // 删除一个值 om.Del("2") // 获取一个值 v, err := om.Get("10") t.Log(v, err) js, err := json.Marshal(om) if err != nil { t.Error(err) return } t.Log(string(js))}=== RUN TestOrderMap_OrderMap--- PASS: TestOrderMap_OrderMap (0.00s) map_test.go:34:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~