Go进阶01 map

2017-08-23 17:29:41

Map 是一种无序的键值对的集合

  • 定义map
    可以使用内建函数 make 也可以使用 map 关键字来定义 Map:

    1
    2
    3
    4
    5
    // 声明变量,默认 map 是 nil 
    var map_variable map[key_data_type]value_data_type

    // 使用 make 函数
    map_variable := make(map[key_data_type]value_data_type)

    如果不初始化 map,那么就会创建一个 nil map。nil map 不能用来存放键值对

  • 实例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    package main

    import "fmt"

    func main() {

    //new 进行创建
    mapA := new(map[int]string)
    *mapA = map[int]string{}
    (*mapA)[112] = "112"
    (*mapA)[110] = "110"

    for v := range *mapA {
    fmt.Println(v)
    }
    //直接创建
    var map1 map[int]string = map[int]string{}
    map2 := map[int]string{
    11:"11"
    12:"12"
    }
    fmt.Println(map2)
    map1[1] = "222"
    map1[2] = "333"
    fmt.Println(map1)

    //make 创建
    map3 := make(map[int]string, 100)
    map3[22] = "22"
    fmt.Println(map3)
    }
  • map查找和删除
    go提供内置函数delete(),参数为 map 和其对应的 key

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    package main

    import "fmt"

    func main() {
    var student map[string]string
    student = make(map[string]string)
    student["liming"] = "小明"
    student["hanmeimei"] = "小梅"

    delete(student, "liming")
    liming, ok := student["liming"]
    if ok {
    fmt.Println(liming)
    } else {
    fmt.Println("no exist person")
    }
    }
  • 总结
    map
    delete()


您的鼓励是我写作最大的动力

俗话说,投资效率是最好的投资。 如果您感觉我的文章质量不错,读后收获很大,预计能为您提高 10% 的工作效率,不妨小额捐助我一下,让我有动力继续写出更多好文章。