Go语言基础学习八-映射

来源:互联网 发布:淘宝男鞋高仿店推荐 编辑:程序博客网 时间:2024/04/29 21:19

Go语言基础学习八-映射

     Go语言中映射是一种内置的数据结构,保存键-值对数据集合,在映射中所有的键必须是支持==和!=操作符的类型,一般的类型都支持如,int,float64,rune,string和可比较的数组及结构体,但Go语言的切片和不能用于比较的数组和结构体不能作为键值。

    映射的一些操作如下:

         m[k] = v         :  用键值k(键)将值v(值)赋值给映射m(维持键-值的映射名)

         Delete(m,k)     :  删除映射m中的k键对应的值

         v:=m[k]          :  将映射m中k键对应的值赋值给v,若k键不存在,则将映射类型的0值赋值给v

         v,found :=m[k]:   同上,但发现有k键存在时,found为true,不存在则found为false

         len(m)        :返回映射中键值对的个数

     映射属于引用类型(就相当于指针类型),无论映射有多少数据保存,映射的传递都是很廉价的,映射的查询速度很快,且映射里所有的键的数据类型必须相同,值也是如此,但键和值的数据类型可以不同,但是我们可以创建一个值为空接口类型(interface{})的映射,这样任意类型的值都可以作为该映射的值。

     映射的创建:

         make(map[KeyType] ValueType,initialCapacity)  //使用make创建映射,一个空的映射

         make(map[KeyType] ValueType)

         map[KeyType] ValueType{}

         map[KeyType] ValueType{key1:value1,key2:value2…}

     同样的,映射和数组或切片一样可以使用索引操作符[],但和数组或切片不同,映射的键类型不必是int型,可以是字符串,可比较的数组,指针等

     for…range来遍历映射,for key,value :=range map,遍历每一个键值对,分别返回该映射的键和值。

     

     映射的查找操作:

     v = m[k],直接返回键k的]对应的值

     v,found := m[k],返回键k对应的值和是否发现键值的标志位

     映射的修改操作:

     delete(populationForCity,”Shanghai”),删除映射population中的Shanghai键的值

     更新和添加直接对键进行赋值即可。

      

     当我们遍历一个映射的时候,遍历的顺序是按键的大小排序的(Unicode码点顺序)

0 0
原创粉丝点击