在go语言中,基础数据结构中除了数组之外,还可以有map这种键值对的数据结构,本文我们就来介绍下如何使用map这种数据结构。
创建map
在go语言中我们声明一个map的话,我们的声明方式是这样子的:
var s= map[${key类型}] value类型{}
上面是声明一个map的基础语法,这里的key类型的话必须要使用中括号给括起来,但是value类型不要使用中括号给括起来。下面我们举个案例:
var s = map[string] int{}
上面的案例我们就声明了一个key使用string类型,value使用int类型的一个map数据结构。
插入数据
创建了map之后我们可能就要向这个map里面插入数据,在go语言中插入数据有两种方式:
第一种方式是直接创建一个map,然后再挨个插入数据,示例如下:
s := map[string]int{} s["age1"] = 15 s["age2"] = 16 fmt.Println(s)
第二种方式是直接在创建map的时候初始化数据,后面用的时候可以手动插入数据,示例如下:
f :=map[string]int{ "age1": 20, "age2": 21, } f["age3"] = 22 fmt.Println(f)
下面我们跑下这个案例:
可以看到ma里面有插入的数据值。
修改数据
在map中修改数据很简单,我们只需要插入相同key的数据后,对应的value就会被修改掉,例如:
f := map[string]int{ "age1": 20, "age2": 21, } f["age3"] = 22 //通过重新设置相同key的方式来修改数据 f["age2"] = 50 fmt.Println(f)
我们看下修改的结果:
查询数据
在map中查询数据的话很简单,我们只需要根据key获取对应的value值即可,例如:
fmt.Println(f["age1"])
我们看下效果:
除了单个查询数据之外,我们经常还会涉及到把整个map的数据遍历查询出来,那么这里便利的话,我们可以使用如下的做法:
//遍历数据 for k, v := range f { fmt.Println("查找出来的key是:%s 对应的value是 %d", k, v) }
下面我们看下遍历的数据结果:
删除数据
在增删改查里面还有一种删除数据的操作,例如我们想要删除map里面的某一些数据呢?这里的话可以直接使用delete函数,删除对应的key即可,对应的value就会自动被删除了,例如:
//删除数据 delete(f, "age2")
删除后效果如下:
备注:
1、这里在其他的语言,例如java里面提供有清空整个map的功能,那么在go语言中怎么清空整个map呢?答案有点出乎意料,在go语言中并未提供清空整个map的方法,如果有涉及到清空map的话,只能重新make一个新的map。
还没有评论,来说两句吧...