笔者个人网站:秋码记录
本文已首发于秋码记录:Go 语言中的字典【map】(Let’s Go 十三)
1、声明 map
首先,要知道什么是map
?
其实,map
是一对key(键)
与value(值)
对应的无序集合,又称为关联数组
或字典
。
var name map[keyType]valueType
//name: map的变量名
//keyType: map中键(key)的类型
//valueType: map中的值(value)的类型
package main
import "fmt"
func main() {
var sitemMap map[string]string
sitemMap = map[string]string{"site": "https://qiucode.cn", "siteName": "秋码记录"}
fmt.Printf("sitemMap 键名 \"site\" 值是: %s\n", sitemMap["site"])
}
2、使用 make() 函数构造
make()
函数的声明格式如下:
make(map[keyType]valueType, cap)
//第一个参数就是构造的map,键(key)值(value)对的类型
//第二个参数是构造出多大的map,也就是容量
package main
import "fmt"
func main() {
sitemMap := make(map[string]string, 2)
sitemMap = map[string]string{"site": "https://qiucode.cn", "siteName": "秋码记录"}
fmt.Printf("sitemMap 键名 \"site\" 值是: %s\n", sitemMap["site"])
}
3、使用 delete() 函数删除键值对
使用delete()
函数根据某个键(Key)
删除对应的键值对,其函数声明如下:
delete(map,key)
//第一个参数是要哪个map进行操作的对象
//第二个参数是操作这个map的哪一个键(key)
package main
import "fmt"
func main() {
sitemMap := make(map[string]string)
// 准备map数据
sitemMap["site"] = "https://qiucode.cn"
sitemMap["siteName"] = "秋码记录"
sitemMap["desc"] = "仗剑行于江湖,执笔记江湖事。"
delete(sitemMap, "siteName")
for k, v := range sitemMap {
fmt.Println(k, v)
}
}
4、清空所有元素
很可惜,Go
并没有关于清空元素、清空所有元素的函数。然而确实需要清空map
当中所有元素怎么办呢?唯一的办法就是重新用make()
函数生成新的map
。