map容器
- map以散列表方式存储键值对集合
- map中每个元素都是键值对
- map[key]Value map中的key和value类型要和定义时候一致
- key是操作map的唯一标准,可以通过key对map中的元素进行增/删/改/查
- key是唯一的,添加已经存在的key会覆盖之前的元素
- map与数组一样,是值类型,只声明时为空指针(nil)
- map读写数据时并不是并发安全的,可以结合RWMutex保证并发安全
package main
import "fmt"
func main() {
declareMap()
makeMap()
mapTest1()
mapTest2()
loopMap()
}
func declareMap() {
var m map[string]string
fmt.Println(m)
fmt.Println(m == nil)
}
func makeMap() {
m := make(map[string]string)
fmt.Println(m)
fmt.Println(m == nil)
}
func mapTest1() {
m := map[string]string{"name": "zhangsan", "age": "22", "gender": "男", "city": "中国上海"}
m1 := map[string]string{
"name": "李四",
"age": "31",
"gender": "男",
"city": "中国北京",
}
fmt.Println(m)
fmt.Println(m1)
}
func mapTest2() {
m := map[string]string{
"张三": "13333333333",
"李四": "13444444444",
"王五": "13555555555",
}
fmt.Println(m)
fmt.Println(m["张三"])
v, t := m["张三"]
fmt.Println(v, t)
fmt.Println(m["赵六"])
v2, t2 := m["赵六"]
fmt.Println(v2, t2)
m["李四"] = "1300000000"
fmt.Println(m)
m["田七"] = "13777777777"
fmt.Println(m)
delete(m, "田七")
fmt.Println(m)
delete(m, "张三丰")
fmt.Println(m)
}
func loopMap() {
m := map[string]string{
"张三": "13333333333",
"李四": "13444444444",
"王五": "13555555555",
}
for k, v := range m {
fmt.Println(k, v)
}
}