Go的100天之旅-09Map

简介

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

var m = map[keyType]valueType

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

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

var m map[string]int

map类型的变量,是一个指向哈希表的引用,相似指针或者slice。上面声明的m因为没有指向具体的哈希表,因此它是nil的。一般声明一个map后须要用内建的make进行初始化:string

m = make(map[string]int)

这时变量m就指向了一个哈希表结构的数据,接下来咱们能够对它进行操做了。class

常见的操做

给一个map中添加值:变量

m["a"] = 1

这里的a能够是存在也能够不存在,若是存在就是替换这个a的值,若是不存在就是设置一个a的值为1遍历

获取map中的值: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,
}
相关文章
相关标签/搜索