当前位置: 移动技术网 > IT编程>脚本编程>Go语言 > Go - Map 集合

Go - Map 集合

2019年07月09日  | 移动技术网IT编程  | 我要评论

概述

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)
}

运行结果:

推荐阅读

本文欢迎转发,转发请注明作者和出处,谢谢!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网