Go 语言Map(集合)

Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。

Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。

定义 Map

可以使用内建函数 make 也可以使用 map 关键字来定义 Map:

/* 声明变量,默认 map 是 nil */
var map_variable map[key_data_type]value_data_type

/* 使用 make 函数 */
map_variable := make(map[key_data_type]value_data_type)

如果不初始化 map,那么就会创建一个 nil map。nil map 不能用来存放键值对

实例

package main
import "fmt"
func main() {
	/* 方式一:声明一个map对象 */
	var  HashMap map[string] string 
	HashMap =make(map[string]string)
	HashMap["姓名"] = "张三"
	HashMap["年龄"] = "18"
	HashMap["地址"] = "北京"
	HashMap["户籍"] = "北京东城"
	/* map是无序的 */
	for key, value := range HashMap {
		fmt.Printf("%v:%v ", key,value)
	}
	fmt.Println("")
}

Map的切片

如果确定是真实的,则存在,否则不存在

vaule , ok := map["参数"]
/* 方式一:声明一个map对象 */
	var  HashMaps map[string] string 
	HashMaps =make(map[string]string)
	HashMaps["姓名"] = "张三"
	HashMaps["年龄"] = "18"
	HashMaps["地址"] = "北京"
	HashMaps["户籍"] = "北京东城"
	printMap(HashMaps)
	value ,ok := HashMaps["爱好"]
	if value == ""{
		fmt.Printf("value为空\n")
	}
	fmt.Printf("value:%v %T %b\n", value,value,value)
	fmt.Printf("ok:%v\n", ok)

delete() 函数

delete() 函数用于删除集合的元素, 参数为 map 和其对应的 key。实例如下:

/**
* 删除map中的值
**/
func DeleteMap[T comparable](entity map[T]T,param T)(bool){
	value,ok := entity[param]
	if ok {
		delete(entity,param)
		fmt.Printf("%v已经被删除\n",value)
		return true
	}
	fmt.Println("不存在参数")
	fmt.Printf("\n******************\n")
	return false
}

原文地址:http://www.cnblogs.com/zouLearn/p/16811612.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性