go语言学习笔记-map

理解

map是由一组无序的键key值value对集合的内置类型,可以通过键来获取对应的值,map和slices一样,也是引用类型

注意:map之间不能使用==操作符来判断

 

创建map

语法:map[type of key]type of value

var myMap map[string]int //nil

此时map是零值,不允许向map向添加元素,我们需要使用make函数初始化map

myMap := make(map[string]int)

 

添加map元素

map添加元素的方法和数组一致

myMap["car"]   = 1
myMap["truck"] = 2
myMap["jeep"]  = 3

也可以在初始化的时候就添加元素

myMap := map[string]int{
        "kitty": 10,
        "Miko":  12,
}

 

删除map元素

语法:delete(mapName, key),该函数没有返回值

delete(myMap, "truck")

 

获取map元素

与数组一致

fmt.Println(myMap["kitty"]) //10

 

map排序

map本身是散列表来实现的,所以是无序的,如果想要以键来对map排序,需要先提取key到slice中,再对slice排序,以下摘用大神们的代码段举例

func main() {
    var m = map[string]int{
        "unix":         0,
        "python":       1,
        "go":           2,
        "javascript":   3,
        "testing":      4,
        "philosophy":   5,
        "startups":     6,
        "productivity": 7,
        "hn":           8,
        "reddit":       9,
        "C++":          10,
    }
    var keys []string
    for k := range m {
        keys = append(keys, k)
    }
    sort.Strings(keys)
    for _, k := range keys {
        fmt.Println("Key:", k, "Value:", m[k])
    }
}

以上就是关于go语言中map的一些基本理解和操作,之后会持续更新的~

感谢你的阅读~

你可能感兴趣的:(go学习笔记)