map初始化
//方法一: make函数
//map[key]value
var userinfo = make(map[string]string)
userinfo["name"] = "张三"//更新数据
userinfo["age"] = "20"
fmt.Println(userinfo)
//方法二: 直接声明
var userinfo = map[string]string{
"name":"张三",
"age":"20"
}
userinfo := map[string]string{}
map的循环遍历
for k,v :=range userinfo{
fmt.Printf("key:%v,value:%v",k,v);
}
map元素是否存在
if v, ok := m1["a"]; ok {
fmt.Println(v)
} else {
fmt.Println("Key Not Found")
}
map数据的查找和删除
//获取查找数据
value, ok := userinfo["age"] //20,true
value, ok := userinfo["xxx"] //空,false
//删除数据 delete(map对象,key)
delete(userinfo,"age")
在切片中放一系列用户信息
//创建
userinfo := make([]map[string]string,3,3)
// ☆ map[] 的初始值,默认值为nil
fmt.Println(userinfo[0]) //map[]
//添加数据
if userinfo[0] == nil{
userinfo[0] = make(map[string]string)
userinfo[0]["name"] = "王五"
userinfo[0]["age"] = "18"
}
if userinfo[1] == nil{
userinfo[0] = make(map[string]string)
userinfo[0]["name"] = "小六"
userinfo[0]["age"] = "35"
}
//循环遍历所有用户
for _,v := range userinfo{
for key,value := range v{
fmt.Println(key,value)
}
}
map类型的值为切片
userinfo :=make(map[string][]string)
userinfo["hobby"] = []string{
"吃饭",
"睡觉",
"敲代码",
}
map为引用类型
map排序
map1 := map[int]int{
10:100,
1:13,
4:56,
8:90,
2:13,
11:100
}
