GO学习笔记 - map

map是GO语言中的一种高级数据类型,特点是key和value对应,这和Delphi中的Dictionary一样!map的声明格式:map[key数据类型]value数据类型。使用map前,必须用make来创建!

示例:

import "fmt"

func main() {

        /*
        声明一个map,m是这个map的变量名。
        map的key  :[]中的参数就是这个map的key,类型为string。
        map的value:最后面的int类型是这个map的value。
        */
        var m map[string]int
        //用make创建这个map
        m = make(map[string]int)

        //添加key是“Answer”的元素,同时把它对应的values赋值为42
        m["Answer"] = 42
        fmt.Println("The value:", m["Answer"])

        //修改key是“Answer”的value值为48
        m["Answer"] = 48
        fmt.Println("The value:", m["Answer"])

        /*
        检测key是“Answer”的元素是否存在,返回值为两个。
        第一个:当前元素的value值,如果元素不存在则为0
        第二个:是否当前元素存在的布尔值
        */
        v1, ok1 := m["Answer"]
        fmt.Println("The value:", v1, "Present?", ok1)

        //删除key是“Answer”的map元素
        delete(m, "Answer")
        fmt.Println("The value:", m["Answer"])

        /*
        检测key是“Answer”的元素是否存在,返回值为两个。
        第一个:当前元素的value值,如果元素不存在则为0
        第二个:是否当前元素存在的布尔值
        */
        v2, ok2 := m["Answer"]
        if ok2 == true {
                fmt.Println("Answer exits")
        } else {
                fmt.Println("Answer not exits")
        }

        fmt.Println("The value:", v2, "Present?", ok2)
}