目录
1.map的定义
/*
概念:
map是一个无序的键值对结构,可以通过key快速的查找value
格式:
var map名称 map[key]value
*/
func main() {
//1.普通方式
var map1 map[string]string
//2.make方式
map2 := make(map[string]int)
fmt.Println(map1, map2) //map[] map[]
fmt.Println(map1 == nil) //true
fmt.Println(map2 == nil) //false
//3.定义时直接初始化
map3 := map[string]string{"name": "张三", "age": "23"}
fmt.Println(map3)
}
2.map的增删查改
func main() {
//创建一个map
map1 := make(map[string]string)
//新增
map1["name"] = "张三"
map1["age"] = "23"
map1["gender"] = "男"
fmt.Println(map1) //map[age:23 gender:男 name:张三]
//修改
map1["name"] = "李四"
fmt.Println(map1) //map[age:23 gender:男 name:李四]
//删除
delete(map1, "age") // delete(map,key)
fmt.Println(map1) //map[gender:男 name:李四]
//查询
fmt.Println(map1["name"]) //李四
}
3.map的遍历
// 由于map是无序的,只能通过for和forr方式遍历
func main() {
map1 := map[string]int{"JAVA": 90, "GO": 80, "C": 60}
//for
for k := range map1 {
fmt.Printf("k=%s,v=%d\n", k, map1[k])
}
//forr
fmt.Println("===========")
for k, v := range map1 {
fmt.Printf("k=%s,v=%d\n", k, v)
}
}
4.map与slice的综合案例
/*
需求:
1.定义map存储人员信息
2.将map存储到slice中
3.遍历取出name
*/
func main() {
//1.定义map存储人员信息
map1 := map[string]string{"name": "张三", "age": "23", "addr": "青岛"}
map2 := map[string]string{"name": "李四", "age": "24", "addr": "济南"}
map3 := map[string]string{"name": "王五", "age": "25", "addr": "北京"}
//2.将map存储到slice中
slice := make([]map[string]string, 0, 3)
slice = append(slice, map1, map2, map3)
fmt.Println(slice)
//3.遍历
for _, v := range slice {
fmt.Println(v["name"])
}
}