go语言定义map:go中map相关知识点
go语言定义map:go中map相关知识点如果需要在map中动态的添加数据 需要把map转化成切片类型的map #声明一个map切片 var s []map[string][string]总结:4.关于map的一些操作map[key]=value # 如果key 不存在 则是添加 如果存在则是修改map 删除delete(map "key") delete 是一个内置函数 这里注意一下 如果这个key存在 就删除 如果不存在 也不会报错 #如果需要全部删除呢? go中并没有提供 这里说两种方法 我用的第二种最多 第一种循环删除 第二种 对当前map在生成一个新的空的map 原来的值就会被gc回收5. 关于map 的遍历与查找val ok := a["a1"] //这里会返回两个值 如果有返回true 没有返回false关于map的遍历对于map的遍历使用for...range for
go中的map 一定得先make才可以开始使用
1.map的基本介绍
map 是一种key-value数据结构 可以叫字段或关联数组
2.map的声明方式
var map 变量名 map[keytype]valuetype
#这里的key可以是很多类型 比如 bool 数字 string 指针 结构体 channel 接口等
但是slice map function是不可以的哦 因为没法用==来判断
3.map的声明
var a map[string]string
下面有几点需要注意
- 声明是不会分配内存的 初始化需要make 分配内存后才可以赋值和使用
- map的key是不能重复的 如果重复 则最后 的会覆盖到前面的
- map中的元素是无序的
4.关于map的一些操作
- map的增加和更新
map[key]=value
# 如果key 不存在 则是添加 如果存在则是修改
- map 删除
delete(map "key") delete 是一个内置函数 这里注意一下
如果这个key存在 就删除 如果不存在 也不会报错
#如果需要全部删除呢?
go中并没有提供 这里说两种方法 我用的第二种最多 第一种循环删除
第二种 对当前map在生成一个新的空的map 原来的值就会被gc回收
5. 关于map 的遍历与查找
- 关于map查找
val ok := a["a1"] //这里会返回两个值 如果有返回true 没有返回false
- 关于map的遍历
对于map的遍历使用for...range
for val index :=range a{
}
6.map切片
如果需要在map中动态的添加数据 需要把map转化成切片类型的map
#声明一个map切片
var s []map[string][string]
总结:
- map是引用类型 适用于引用类型传递的机制
- 关于map排序 解决办法 是对map中的key进行排序 再通过key输出value