11-Go语言字典

2018-09-26  本文已影响0人  喝酸奶要舔盖__

字典

字典基本概念

字典定义的格式

字典的初始化
   //1.创建字典的第一种方式
    //定义一个字典
    var dict map[int]int
    //给字典初始化
    dict = map[int]int{0:1,1:3,2:5}
    fmt.Println(dict)
    fmt.Println(len(dict))
    //通过key可以修改字典
    dict[0] = 666
    fmt.Println(dict)
    //通过key来查找对应的值
    fmt.Println(dict[0])

    //通过语法糖初始化字典
    dict := map[string]string{"name" : "lnj", "age" : "18"}
    fmt.Println(dict)
    fmt.Println(len(dict))
   //2.创建字典的第二种方式
    var dict map[int]int
    //通过make函数初始化,指定字典的长度
    //在企业开发中,如果事先知道字典中需要保存多少条数据, 那么建议指定字典的长度
    dict = make(map[int]int,3)
    fmt.Println(dict)
    fmt.Println(len(dict))
    dict[0] = 1
    dict[1] = 3
    dict[2] = 5
    dict[3] = 6
    fmt.Println(dict)
    fmt.Println(len(dict))
//3.创建字典的第三种方式
    //通过make函数初始化字典,不指定字典长度
    dict := make(map[int]int)
    fmt.Println(dict)
    dict[0] = 1
    dict[1] = 3
    dict[2] = 5
    dict[3] = 7
    fmt.Println(dict)

字典的遍历
for key, value := range dict {
    fmt.Println("key = ",key, "value = ", value)
}

字典的操作
package main

import "fmt"

func main() {
    /*
    注意点:
    字典中不能有同名的key
    */

    var dict map[string]string
    //初始化字典
    dict = make(map[string]string, 2)


    //字典增加数据
    dict["name"] = "lnj"//没有key代表增加
    dict["age"] = "18"
    //字典修改数据
    dict["name"] = "zs" //有key代表修改值
    fmt.Println(dict) //map[age:18 name:zs]

    //字典查询数据
    value, ok := dict["name"]
    fmt.Println(ok) //true
    fmt.Println(value)

    value, ok := dict["gender"]
    fmt.Println(ok) //false
    fmt.Println(value)

    //企业开发中标准写法
    if value, ok := dict["age"]; ok {
        fmt.Println(ok)
        fmt.Println(value)
    }
    //删除操作
    dict := map[string]string{"name" : "wjh","age": "18"}
    delete(dict,"age")//删除key和对应的value
    fmt.Println(dict)
}


字典地址传递
package main

import "fmt"

func main() {
    //字典是地址传递
    dict1 := map[string]string{"name":"lnj","age":"18"}
    var dict2 map[string]string
    dict2 = dict1
    fmt.Println(dict1) //修改前map[name:lnj age:18]
    dict2["name"] = "wjh"
    fmt.Println(dict1) //修改后map[name:wjh age:18]

    //作为函数参数时候
    change(dict1)
    fmt.Println(dict1) //map[name:zs age:18]
}

func change(dict map[string]string)  {
    dict["name"] = "zs"
}
上一篇下一篇

猜你喜欢

热点阅读