Go的100天之旅-09Map

简介

哈希表在平时可以说是最常见的一种数据结构,Go内建了map这种类型,就是哈希表的一种实现。声明一个map类型的变量要指定它key/value的类型,如下:

var m = map[keyType]valueType

其中key的类型必须支持==比较运算符的数据类型

下面简单声明一个keystring类型值是int类型的map

var m map[string]int

map类型的变量,是一个指向哈希表的引用,类似指针或者slice。上面声明的m由于没有指向具体的哈希表,所以它是nil的。通常声明一个map后需要用内建的make进行初始化:

m = make(map[string]int)

这时变量m就指向了一个哈希表结构的数据,接下来我们可以对它进行操作了。

常见的操作

给一个map中添加值:

m["a"] = 1

这里的a可以是存在也可以不存在,如果存在就是替换这个a的值,如果不存在就是设置一个a的值为1

获取map中的值:

i := map["a"]

如果键a不存在,则返回0map可以返回双值,判断key是否存在:

i, ok := m["a"]

i就是当前a存的值,ok就是键a是否存在,如果存在oktrue不存在为false

len可以获取map当前的元素的个数:

n := len(m)

delete可以删除map中的值:

delete(m, "a")

遍历map可以用range

for key, value := range m {
    fmt.Println("Key:", key, "Value:", value)
}

map初始化的是时候就可以赋值:

m := map[string]int{
    "rsc": 3711,
    "r":   2138,
    "gri": 1908,
    "adg": 912,
}
posted @ 2020-07-27 20:48  后厂村海盗  阅读(224)  评论(0编辑  收藏  举报