go 学习之map
2020-12-10 16:12 Caoxt 阅读(73) 评论(0) 收藏 举报Map 声明是不会分配内存的,初始化需要make,分配内存后才能赋值和是使用。无序排列。
三种创建方法:
//第一种
var person map[string]string
person = make(map[string]string, 3)
person["name"] = "caoxt"
person["hobby"] = "football"
person["play"] = "pc"
fmt.Println(person["name"])
//第二种
person2 := make(map[string]string, 3)
person2["name"] = "小明"
person2["hobby"] = "足球"
person2["paly"] = "电脑"
fmt.Println(person2["hobby"])
//第三种
var person3 map[string]string = map[string]string{
"name": "小明3",
"hobby": "足球3",
"paly": "电脑3",
}
fmt.Println(person3["name"])
//第三种简写
person4 := map[string]string{
"name": "大明",
"hobby": "足球4",
"play": "电脑4",
}
fmt.Println(person4)
//map的值仍未map结构
classmate := make(map[string]map[string]string, 3)
classmate["num1"] = make(map[string]string, 3)
classmate["num1"]["name"] = "tom1"
classmate["num1"]["sex"] = "male"
classmate["num2"] = make(map[string]string, 3)
classmate["num2"]["name"] = "tom2"
classmate["num2"]["sex"] = "male2"
classmate["num3"] = make(map[string]string, 3)
classmate["num3"]["name"] = "tom3"
classmate["num3"]["sex"] = "male3"
fmt.Println(classmate["num3"]["name"])
动态添加map切片
var classmate []map[string]string
classmate = make([]map[string]string,2)
classmate[0] = make(map[string]string, 2)
classmate[0]["name"] = "tom"
classmate[0]["age"] = "10"
classmate[1] = make(map[string]string, 2)
classmate[1]["name"] = "tom2"
classmate[1]["age"] = "20"
//newclassmate := map[string]string
//newclassmate = make(map[string]string,2)
newclassmate := map[string]string{
"name": "tom3",
"age": "30",
}
classmate = append(classmate, newclassmate)
fmt.Println(classmate[2]["name"])
浙公网安备 33010602011771号