go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 字典map:map键值对的增删改查
Posted Locutus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 字典map:map键值对的增删改查相关的知识,希望对你有一定的参考价值。
1. 插入元素(增)
map插入key:value键值对
scene := map[string]int{"one":1, "two":2, "three":3}
scene["four"] = 4
countryCapitalMap := make(map[string]string)
// map插入key - value对,各个国家对应的首都
countryCapitalMap["France"] = "Paris"
countryCapitalMap["Italy"] = "罗马"
countryCapitalMap["Japan"] = "东京"
countryCapitalMap["India"] = "新德里"
2. 使用delete函数,从map中删除键值对(删)
delete函数用于删除集合map中的元素,参数为map和其对应的key。
delete(map, key)
3. 修改某个键的值
language4 := make(map[string]map[string]string)
// 修改字典language4的go元素键id的值。注意这里是修改,不要理解成是追加元素
language4["go"]["id"] = "3"
4. 访问map中key对应的value,key:value(查)
func TestMapVisit(t *testing.T){
scene := make(map[string]int)
t.Log(scene)
scene["route"] = 66
scene["brazil"] = 4
scene["china"] = 960
t.Log(scene)
t.Log(scene["route"]) // 查找map中对应key的值
v := scene["route2"]
t.Log(v)
v, ok := scene["route"]
t.Log(ok) // 若key存在,则ok为true
// 使用for range,迭代map,遍历键值对
for k, v := range scene {
t.Log(k, v)
}
for _, v := range scene {
t.Log(v)
}
for k := range scene {
t.Log(k)
}
}
- 查找map中对应key的值
- 查找map中一个不存在的key route2,会返回map中定义value_data_type的零值
- 在获取value值的基础上,多取一个变量ok,判断map中是否存在key route
- 使用for range,迭代map,遍历键值对
map是无序的,不能期望for range遍历map时,返回某种顺序的结果。但如果需要某种特定顺序的遍历结果,正确的做法是排序:
func TestMapSort(t *testing.T) {
scene := make(map[string]int)
t.Log(scene)
// 准备map数据
scene["route"] = 66
scene["brazil"] = 4
scene["china"] = 960
t.Log(scene)
// 声明一个切片,用于缓冲和排序map元素
var sceneList []string
// 把map键k遍历,并复制到切片中
for k := range scene {
sceneList = append(sceneList, k)
}
// 对切片中的字符串元素进行排序
sort.Strings(sceneList)
t.Log(sceneList) // 输出排序后的map键
for _, k := range sceneList {
t.Log(scene[k])
}
}
以上是关于go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 字典map:map键值对的增删改查的主要内容,如果未能解决你的问题,请参考以下文章
go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组:一维数组
go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 切片:切片内部结构
go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组:向函数传递数组
go语言学习笔记 — 基础 — 高级数据类型 — 派生类型:指针(pointer)数据容器函数(func)结构体(struct)通道(channel)