Golang map的使用
一:基本语法:
var 变量名 map[keytype]valuetype
keytype 的类型:bool、数字、string、指针、channel,还可以是只包含前面几个类型的接口、结构体、数组,通常为int、string
注意:slice、map还有function不可以为keytype,因为这几个没法用 == 来判断
valuetype 的类型:和 keytype 基本一样,通常为数字、string、map、结构体
举例:var a map[string]string、var a map[string]int、var a map[int]string、var a map[string]map[string][string]
举例说明:
//声明一个map
var a map[string][string]
//使用make给map分配数据空间
a = make(map[string][string],10)
a["name"] = "carver"
fmt.Println(a)
注意:声明是不会分配内存的、初始化需要make,分配内存后才能赋值和使用,map是无序的
map的声明方式如下:
-
方式1
//先声明,再make var person map[string][string] person = make(map[string][string],10) -
方式2
//直接make var person = make(map[string][string]) person["name"] = "carver" person["age"] = 34 -
方式3
//生命并赋值 var person map[string]string = map[string]string{ "name":"张三", "age":23, } person["name"] = "李四"
多个map使用如下:
var a map[string]map[string][string]
studentMap := make(map[string]map[string]string)
studentMap["student01"] = make(map[string]string,3)
studentMap["student01"]["name"] = "carver"
studentMap["student01"]["sex"] = "男"
studentMap["student02"] = make(map[string]string,3)
studentMap["student01"]["name"] = "carvers"
studentMap["student01"]["sex"] = "女"
fmt.Println(studentMap["student01"]["sex"])
map的删除操作
person := make(map[string][string])
person["name1"] = "carver1"
person["name2"] = "carver2"
//删除指定key的map
delete(person,"name2")
//删除所有key
person = make(map[string][string])
map的查找操作
person := make(map[string][string])
person["name1"] = "carver1"
person["name2"] = "carver2"
val,ok := person["name2"]
if ok {
Println("有 name2 的key ,值为%v\n",val)
}else{
Println("没有 name2 的key")
}
二:map切片
切片的数据类型如果是map,map数就可以动态变化了
本文来自博客园,作者:Carver大脸猫,转载请注明原文链接:https://www.cnblogs.com/carver/articles/18442888

浙公网安备 33010602011771号