什么是字典
Go语言字典和数组一样,是来保存一组相同的数据类型的
Go语言字典可以通过key值来获取数据
格式:
var 字典名称 map[key数据类型]value数据类型
定义字典的方式
通过Go语言语法糖创建
- var dict map[string]string = map[string]string{“name”:”xxz” , “age”:”18″}
- dict := map[string]string{“name”:”lnj”, “age”:”18″}
通过make函数来创建
- make(数据类型,字典长度)
dict = make(map[string]string,3)
dict["key"] = "value"
- 通过make函数来创建(省略长度)
- make(字典数据类型)
dict = make(map[string]string)
dict["key"] = "value"
定义字典的注意点
- 和切片一样,通过var 字典名称 map[key数据类型]value数据类型定义的字典不能直接使用,需要对字典进行初始化
//var dict map[string]string = map[string]string{"name" ; "xxz","age":"18"}
var dict map[string]string
dict = map[string]string{"name" ; "xxz","age":"18"}
2.在企业开发中通过make函数创建字典,如果知道字典的长度,那么尽量把字典的长度写上,有助于提高性能
3.如果字典的长度没有写,那么在添加字典的时候,底层会自动做扩容操作
4.字典中没有两个相同的key值,所以定义的时候不可以定义两个相同的key
字典的遍历
var dict map[string]string = map[string]string{"name" ; "xxz","age":"18"}
for key,value := range dict{
fmt.Println("key = ", key, "value = ", value)
}
字典的增删改查
现有一字典var dict map[string]string = map[string]string{“name” ; “xxz”,”age”:”18″}
增加
dict[“key”] = “value”
如果字典的没有对应的key值就是增加删
del (字典名称,key值)
会将指定字典中指定的key值删除改
dict[“key”] = “value”
如果字典的有对应的key值就是修改查
value,ok := dict[“key”]
如果存在key,对应的值返回给value,True返回给ok
如果不存在,value接收到值数据类型对应的零值(int为0,字符串为””),False返回给ok企业开发中判断是否存在某个值的写法
if value,ok := dict["key"];ok{
fmt.Println(value)
fmt.Println(ok)
}
字典作为函数参数
- 字典作为函数参数是地址传递,修改形参的值会影响到实参
var dict1 map[string]string = map[string]string{"name": "xxz", "age": "18"}
//var dict2 map[string]string
//dict2 = dict1
fmt.Println(dict1)
//dict2["name"] = "zs"
change(dict1)
fmt.Println(dict1)
}
func change(dict2 map[string]string) {
dict2["name"] = "zs"
}
- 字典注意点补充:字典和数组切片不一样,字典保存的数据是无序的