哈希表在平时能够说是最多见的一种数据结构,Go内建了map
这种类型,就是哈希表的一种实现。声明一个map
类型的变量要指定它key/value
的类型,以下:数据结构
var m = map[keyType]valueType
其中key
的类型必须支持==比较运算符的数据类型指针
下面简单声明一个key
是string
类型值是int
类型的map
:code
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
不存在,则返回0
,map
能够返回双值,判断key
是否存在:数据类型
i, ok := m["a"]
i
就是当前a
存的值,ok
就是键a
是否存在,若是存在ok
为true
不存在为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, }