Go - Map 集合
程序员文章站
2022-06-17 08:26:40
[TOC] 概述 Map 集合是无序的 key value 数据结构。 Map 集合中的 key / value 可以是任意类型,但所有的 key 必须属于同一数据类型,所有的 value 必须属于同一数据类型,key 和 value 的数据类型可以不相同。 声明 Map 运行结果: 生成 JSON ......
概述
map 集合是无序的 key-value 数据结构。
map 集合中的 key / value 可以是任意类型,但所有的 key 必须属于同一数据类型,所有的 value 必须属于同一数据类型,key 和 value 的数据类型可以不相同。
声明 map
//demo_14.go package main import ( "fmt" ) func main() { var p1 map[int]string p1 = make(map[int]string) p1[1] = "tom" fmt.println("p1 :", p1) var p2 map[int]string = map[int]string{} p2[1] = "tom" fmt.println("p2 :", p2) var p3 map[int]string = make(map[int]string) p3[1] = "tom" fmt.println("p3 :", p3) p4 := map[int]string{} p4[1] = "tom" fmt.println("p4 :", p4) p5 := make(map[int]string) p5[1] = "tom" fmt.println("p5 :", p5) p6 := map[int]string{ 1 : "tom", } fmt.println("p6 :", p6) }
运行结果:
生成 json
//demo_15.go package main import ( "encoding/json" "fmt" ) func main() { res := make(map[string]interface{}) res["code"] = 200 res["msg"] = "success" res["data"] = map[string]interface{}{ "username" : "tom", "age" : "30", "hobby" : []string{"读书","爬山"}, } fmt.println("map data :", res) //序列化 jsons, errs := json.marshal(res) if errs != nil { fmt.println("json marshal error:", errs) } fmt.println("") fmt.println("--- map to json ---") fmt.println("json data :", string(jsons)) //反序列化 res2 := make(map[string]interface{}) errs = json.unmarshal([]byte(jsons), &res2) if errs != nil { fmt.println("json marshal error:", errs) } fmt.println("") fmt.println("--- json to map ---") fmt.println("map data :", res2) }
运行结果:
编辑和删除
//demo_16.go package main import ( "fmt" ) func main() { person := map[int]string{ 1 : "tom", 2 : "aaron", 3 : "john", } fmt.println("data :",person) delete(person, 2) fmt.println("data :",person) person[2] = "jack" person[3] = "kevin" fmt.println("data :",person) }
运行结果:
推荐阅读
本文欢迎转发,转发请注明作者和出处,谢谢!