Go map | 青训营

44 阅读1分钟

切片

copy()

Go语言内建的copy()函数可以迅速地将一个切片的数据复制到另外一个切片空间中,copy()函数的使用格式如下:

copy(destSlice, srcSlice []T)

destSlice: 目标切片

srcSlice: 数据来源切片

删除元素

要从切片a中删除索引为index的元素,操作方法是a = append(a[:index], a[index+1:]...)

map

map是key-value数据结构,又称为字段或者关联数组,类似其他编程语言的集合,在编程中经常使用到map集合。map是引用类型,必须初始化才能使用。

数据类型

map[keyType]valueType

keyType:键的类型

valueType:键对应的值的类型

key和value可以是bool、数字、string、指针、channnel,还可以是包含前几个类型的接口,结构体,数组,但是不可以是slice、map、function

 

构造

 make()

格式:

var name = make(map[keyType]valueType,count)

name:map名称

keyType:键的类型

valueType:键对应的值的类型

count:map长度(可写可不写)


var m = make(map[string]int, 10)  
m["yi"] = 1  
m["er"] = 2

 在声明时加入元素

格式:

var name = map[keyType]valurType{

key1 :value1

key2:value2

……

}


var m2 = map[string]int{  
   "yi":  1,  
   "er":  2,  
   "san": 3,  
}

判断map中是否存在某键

value,ok := m2[“yi”]

若存在则ok为true,value返回m2[“yi”],若不存在则ok返回false,value返回类型的零值(默认值)

遍历

用for range遍历就可

删除键值对delete()

格式:delete(map,key)

map:要删除键值对的map

key:要删除的键值对的键

按照指定顺序遍历map

使用for range遍历,将i(也就是键)一个一个存入一个切片,通过遍历切片来按顺序遍历键值对