栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Golang——map集合初始化、键值操作、map作为函数参数的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Golang——map集合初始化、键值操作、map作为函数参数的使用

map是一种无序的键值对集合,键是不允许重复的,map是通过hash实现的map最重要的一点是通过key来快速检索数据,key类似于索引,指向数据的值

map的创建:

格式1:

var map名称 map[key的类型]value的类型

格式2:

map名称 := map[key的类型]value的类型{}

格式3:

map名称 := make(map[key的类型]value的类型)

演示:

func mapDemo() {
	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 mapDemo() {
	var m map[string]string = 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名称[键]通过key获取值
变量1,变量2 := map名称[键]通过key获取值时,判断是否存在
delete(map名称,键)通过key删除value

演示:

func mapDemo02() {
	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{"打野": "露娜", "中路": "不知火舞", "射手": "马可波罗"}
	mapDemo03(m)
}

func mapDemo03(m map[string]string) {
	fmt.Println("修改前", m)
	delete(m, "打野")
	fmt.Println("修改后", m)
}
统计字母出现的次数:

思路:

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

func mapDemo04() {
	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("统计的字符次数为:nn")

	// 遍历
	for key, value := range m {
		fmt.Printf("%c:%dn", key, value)
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/724219.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号