无序键是不允许重复
map的创建:
格式1:
var map名称 map[key的类型]value的类型
格式2:
map名称 := map[key的类型]value的类型{}
格式3:
map名称 := make(map[key的类型]value的类型)

演示:

func main() {
	var m map[int]string
	m1 := map[int]string{}
	m2 := make(map[int]string)
	fmt.Println(m)
	fmt.Println(m1)
	fmt.Println(m2)
}
map的初始化:
格式1:
var map名称 map[key的类型]value的类型 = map[key的类型]value的类型{key:value,key:value}
格式2:
map名称 := map[key的类型]value的类型{key:value,key:value}
格式3:
map名称 := make(map[key的类型]value的类型)
map名称 [key] = value

演示:

func main() {
	//var m map[string]string = map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "马可波罗"}
	// 可以简写
	var m = map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "马可波罗"}
	m1 := map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "马可波罗"}
	m2 := make(map[string]string)
	m2["打野"] = "露娜"
	m2["中路"] = "不知火舞"
	m2["射手"] = "马可波罗"
	fmt.Println(m)
	fmt.Println(m1)
	fmt.Println(m2)
}
map键值操作:
map名称[键]value,ok := map[key]delete(map名称,键)

演示:

func main() {
	m := map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "马可波罗"}
	fmt.Println(m["打野"])

	value, key := m["打野2"]
	if key { 
		fmt.Println(value)
	} else {
		fmt.Println("key不存在")
	}

	for key, value := range m {
		fmt.Println(key, value)
	}

	delete(m, "打野")
	fmt.Println(m)
}
map作为函数参数:

在函数中修改map的值,会影响到原来的map

创建格式格式:

func 函数名 (map){
	函数体
}

调用格式:

函数名(map)

演示:

func main() {
	m := map[string]string{"打野": "露娜", "中路": "不知火舞", "射手": "马可波罗"}
	mapDemo(m)
	fmt.Println("修改后main中打印:", m)
}

func mapDemo(m map[string]string) {
	fmt.Println("修改前:", m)
	delete(m, "打野")
	fmt.Println("修改后mapDemo中打印:", m)
}

输出:

修改前: map[中路:不知火舞 射手:马可波罗 打野:露娜]
修改后mapDemo中打印: map[中路:不知火舞 射手:马可波罗]
修改后main中打印: map[中路:不知火舞 射手:马可波罗]
统计字母出现的次数:

思路:

定义map,键盘录入的字母作为map的key,统计的次数作为map的value,循环遍历

func mapDemo() {
	fmt.Println("请输入要统计的字母:")
	// 定义统计次数的变量
	var str string
	fmt.Scan(&str)

	m := make(map[byte]int)
	for i := 0; i < len(str); i++ {
		// 定义变量s作为map的key
		s := str[i]
		// 通过key获取值 int类型初始值为0,相同则+1作为新的value
		m[s] += 1
	}
	fmt.Println("统计的字符次数为:\n\n")

	// 遍历
	for key, value := range m {
		fmt.Printf("%c:%d\n", key, value)
	}
}