Go-map集合

  • map集合是一种无序的key-value的数据结构,在Go中的map是引用类型,必须初始化才能使用
  • map是一种无序的键值对集合,可以通过key来快速的检索value,key类似索引,指向数据的值。
  • 我们可以像数组和切片一样迭代map,但因为其是无需的,所以我们无法决定它的返回顺序
  • 定义格式:map[KeyType]ValueType,KeyType:键类型,ValueType:值类型,map初始值为nil,需要使用make()函数来分配内存,make(map[KeyType]ValueType, [cap]),cap为容量,该参数非必传参数,但是我们应该在初始化map的时候就为其指定一个合适的容量
  • map同样使用for,range进行遍历
  • 使用delete()函数删除键值对,delete(map, key)
var map1 map[string]string
map1 = make(map[string]string)
map1["name"] = "mossil"
map1["sex"] = "man"
fmt.Println(map1)
for key, value := range map1 {
	fmt.Printf("key : %v, value : %v \n", key, value)
}

// 声明时添加元素
user := map[string]string{
	"name": "mossil",
	"sex":  "man",
}
fmt.Println(user)
for key, value := range user {
	fmt.Printf("key : %v, value : %v \n", key, value)
}

// 判断map中的某个键是否存在
val, err := user["name"]
if err {
	fmt.Printf("err : %v, val : %v \n", err, val)
} else {
	fmt.Printf("err : %v, val : %v \n", err, val)
}

// 删除map中的某个key
delete(user, "sex")
fmt.Println(user)

// 切片+map
// 1.元素是map的切片
var mapSlice = make([]map[string]string, 3)
for index, item := range mapSlice {
	fmt.Printf("index : %v, item : %v \n", index, item)
}
// 对切片中的map元素初始化
mapSlice[0] = make(map[string]string)
mapSlice[0]["name"] = "张三"
mapSlice[0]["pass"] = "123456"
mapSlice[0]["addr"] = "火星"
fmt.Println(mapSlice)
// 2.元素是切片的map
var sliceMap = make(map[string][]string, 3)
fmt.Println(sliceMap)
key := "中国"
value, ok := sliceMap[key]
if !ok {
	value = make([]string, 0, 2)
}
value = append(value, "北京", "上海")
sliceMap[key] = value
fmt.Println(sliceMap)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值