一、map
map是一种无序的基于key-value
的数据结构,Go语言中的map是引用类型,必须初始化才能使用。
Go语言中 map
的定义语法是这样的:
map[KeyType]ValueType
其中,
- KeyType:表示键的类型。
- ValueType:表示键对应的值的类型。
二、map 实战
package main
import (
"encoding/json"
"fmt"
)
/**
Map 集合
*/
func main() {
var m1 map[int]string
m1 = make(map[int]string)
m1[1] = "tom"
fmt.Println("m1 =", m1)
m1[2] = "lisi"
fmt.Println("m1 = ", m1)
var m2 map[int]string = map[int]string{}
m2[1] = "tory"
fmt.Println("m2=", m2)
var m3 map[int]string = make(map[int]string)
m3[2] = "marry"
fmt.Println("m3=", m3)
m4 := map[int]string{}
m4[3] = "tom"
fmt.Println("m4=", m4)
m5 := make(map[int]string)
m5[4] = "feifei"
fmt.Println("m5=", m5)
m6 := map[int]string{1: "tom", 2: "lisi"}
fmt.Println("m6=", m6)
// 生产json
res := make(map[string]interface{})
res["code"] = 200
res["msg"] = "成功"
res["data"] = map[string]interface {
}{
"name": "李明",
"age": "19",
"body": []string{"学习go", "学习java"},
}
fmt.Println("res data = ", res)
// 序列化
jsons, errs :=json.Marshal(res)
if errs !=nil{
fmt.Println("error",errs)
}
fmt.Println("json序列化后 = ",string(jsons))
// 反序列化
res2 :=make(map[string]interface{})
errs = json.Unmarshal([]byte (jsons),&res2)
if errs !=nil{
fmt.Println("error",errs)
}
fmt.Println("json反序列化后 ",res2)
// 编辑和删除
person :=map[int]string{
1:"zhangsan",
2:"lisi",
3:"wangwu",
4:"liming",
}
fmt.Println("person = ",person)
delete(person,2)
fmt.Println("person 删除后",person)
person[3] ="钟渊1"
person[4] ="钟渊2"
fmt.Println("p=",person)
}