Go - Map 集合
Posted xinliangcoder
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go - Map 集合相关的知识,希望对你有一定的参考价值。
概述
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)
运行结果:
推荐阅读
本文欢迎转发,转发请注明作者和出处,谢谢!
以上是关于Go - Map 集合的主要内容,如果未能解决你的问题,请参考以下文章