一.创建Map
Map[key]value//结构
方法一:
m1 := map[string]string{//方法一
"name": "dog",
"course": "golong",
"site": "imooc",
"quality": "not bad",
}
m2 := make(map[string]int)//方法二:初始为空
var m3 map[string]int//方法三:初始为空
fmt.Println(m1)
fmt.Println(m2)
fmt.Println(m3)
结果:
二.遍历Map
m1 := map[string]string{
"name": "dog",
"course": "golong",
"site": "imooc",
"quality": "not bad",
}
fmt.Println("Map的遍历:")
for k, v := range m1 {
fmt.Println(k, v)
}
结果:
三.获取value值
m1 := map[string]string{ //方法一
"name": "dog",
"course": "golong",
"site": "imooc",
"quality": "not bad",
}
fmt.Println("获取value:")
courseName := m1["course"]
fmt.Println(courseName)
四.判断key值是否在map中
m1 := map[string]string{ //方法一
"name": "dog",
"course": "golong",
"site": "imooc",
"quality": "not bad",
}
fmt.Println("获取value:")
courseName, ok := m1["course"]
fmt.Println(courseName, ok)
causeName, ok := m1["cause"]//cause不在map中,输出值为空
fmt.Println(causeName, ok)
结果:
五.删除value
m1 := map[string]string{ //方法一
"name": "dog",
"course": "golong",
"site": "imooc",
"quality": "not bad",
}
name, ok := m1["name"]
fmt.Println(name, ok)
delete(m1, "name")
name, ok = m1["name"]
fmt.Println(name, ok)
结果:
六.Map中key使用
1. map使用哈希表,必须可以比较相等。
2. 除了slice、map、function的内建类型都可以作为key。
3. struct类型不包括上述字段,也可以作为key