GO语言基础语法之Map(第十九天)

Go 语言Map(集合)

  • Map 是一种无序的键值对的集合。通过 key 来快速检索数据,key 类似于索引,指向数据的值。
  • Map实现涉及两种数据结构,搜索树(红黑树)以及hash table,GO 是使用 hash 表来实现的。

定义 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() {
	var dataMap map[string]string /*创建集合 */
	dataMap = make(map[string]string)

	/* map插入key - value对 */
	dataMap["Monday"] = "星期一"
	dataMap["Tuesday"] = "星期二"
	dataMap["Wednesday"] = "星期三"
	dataMap["Thursday "] = "星期四"
	dataMap["Firday"] = "星期五"
	dataMap["Staurday "] = "星期六"
	dataMap["Sunday"] = "星期天"

	for index := range dataMap {
		fmt.Println(index, "value", dataMap[index])
	}

	/*查看元素在集合中是否存在 */
	capital, ok := dataMap["Sunday"] /*如果确定是真实的,则存在,否则不存在 */
	if ok {
		fmt.Println("Sunday 是", capital)
	} else {
		fmt.Println("Sunday 对应不存在")
	}
}

API server listening at: 127.0.0.1:31389
Sunday value 星期天
Monday value 星期一
Tuesday value 星期二
Wednesday value 星期三
Thursday  value 星期四
Firday value 星期五
Staurday  value 星期六
Sunday 是 星期天
Process exiting with code: 0

delete() 函数

  • delete() 函数用于删除集合的元素, 参数为 map 和其对应的 key
  • 注意delete(map,“key”),如果key是字符串,一定要注意末尾是否有空格之类的,编码要细心。
package main

import "fmt"

func main() {
	var dataMap map[string]string /*创建集合 */
	dataMap = make(map[string]string)

	/* map插入key - value对 */
	dataMap["Monday"] = "星期一"
	dataMap["Tuesday"] = "星期二"
	dataMap["Wednesday"] = "星期三"
	dataMap["Thursday "] = "星期四"
	dataMap["Firday"] = "星期五"
	dataMap["Staurday"] = "星期六"
	dataMap["Sunday"] = "星期天"

	for index := range dataMap {
		fmt.Println(index, "value", dataMap[index])
	}

	/*查看元素在集合中是否存在 */
	capital, ok := dataMap["Sunday"] /*如果确定是真实的,则存在,否则不存在 */
	if ok {
		fmt.Println("Sunday 是", capital)
	} else {
		fmt.Println("Sunday 对应不存在")
	}

	/*删除map中的星期六*/
	delete(dataMap, "Staurday")
	fmt.Println("删除后:\r")
	for index := range dataMap {
		fmt.Println(index, "value", dataMap[index])
	}
}

Firday value 星期五
Staurday value 星期六
Sunday value 星期天
Monday value 星期一
Tuesday value 星期二
Wednesday value 星期三
Thursday  value 星期四
Sunday 是 星期天
删除后:
Wednesday value 星期三
Thursday  value 星期四
Firday value 星期五
Sunday value 星期天
Monday value 星期一
Tuesday value 星期二
发布了205 篇原创文章 · 获赞 47 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/qq_32744005/article/details/105235536