Golang中的map

    var map1 = make(map[string]interface{})
	map1["aaa"] = "1111"
	map1["bbb"] = "222"
	map1["000"] = "333"
	fmt.Println(map1) // map[000:333 aaa:1111 bbb:222]
	// 转成JSON
	marshal, _ := json.Marshal(map1)
	fmt.Println(string(marshal)) // {"000":"333","aaa":"1111","bbb":"222"}
	// map排序
	var keys []string
	// 取出所有的key
	for key, _ := range map1 {
		keys = append(keys, key)
	}
	fmt.Println(keys) // [aaa bbb 000]
	// 对key进行排序
	sort.Strings(keys)
	fmt.Println(keys) // [000 aaa bbb]
	// 按排序后的key逐个取出
	for i := range keys {
		fmt.Println("key:", keys[i], "value:", map1[keys[i]])
		// key: 000 value: 333
		// key: aaa value: 1111
		// key: bbb value: 222
	}

	var map2 = make(map[string]int, 10)
	map2["aaa"] = 111
	map2["bbb"] = 222
	fmt.Println(map2) // map[aaa:111 bbb:222]

	map3 := map[string]string{
		"aa": "xxx",
		"vv": "uuu",
	}
	map3["gg"] = "ooo"
	fmt.Println(map3) // map[aa:xxx gg:ooo vv:uuu]
	// 删除key,key不存在时不报错
	delete(map3, "gg")
	fmt.Println(map3)           // map[aa:xxx vv:uuu]
	fmt.Println(map3["vv"])     // uuu
	fmt.Println(map3["vvuuuu"]) // ""
	value, exist := map3["aa"]
	// 判断key是否存在
	if exist {
		fmt.Println("存在key:aa, value:", value)
	} else {
		fmt.Println("不存在key:aa")
	}
	// 遍历map
	for key := range map3 {
		fmt.Println("key:", key, "value:", map3[key])
	}
	for key, value := range map3 {
		fmt.Println("key:", key, "value:", value)
	}
	// map中k-v键值对数量
	fmt.Println(len(map3)) // 2

	// 复杂map操作
	studentMap := make(map[string]map[string]string)
	studentMap["tom"] = make(map[string]string)
	studentMap["tom"]["name"] = "tom"
	studentMap["tom"]["sex"] = "男"
	studentMap["kevin"] = make(map[string]string)
	studentMap["kevin"]["name"] = "kevin"
	studentMap["kevin"]["sex"] = "男"
	studentMap["lucy"] = make(map[string]string)
	studentMap["lucy"]["lucy"] = "kevin"
	studentMap["lucy"]["sex"] = "女"
	fmt.Println(studentMap) // map[kevin:map[name:kevin sex:男] lucy:map[lucy:kevin sex:女] tom:map[name:tom sex:男]]
	jsonStr, _ := json.Marshal(studentMap)
	fmt.Println(string(jsonStr)) // {"kevin":{"name":"kevin","sex":"男"},"lucy":{"lucy":"kevin","sex":"女"},"tom":{"name":"tom","sex":"男"}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值