Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了学习Golang语言(7):类型--字典大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

跟着码术一起学习Golang语言。今天学习的是Go语言内置的数据结构:字典(map)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

字典(Map)

字典(@H_355_1@map)是Go语言内置的数据结构,一组键值对的无序集合。

有些地方称之为映射。本文中一律成为字典(@H_355_1@map)。

字典(@H_355_1@map)也叫做关联数组。因为数组通过索引来查找元素,而字典通过键(key)来查找元素。

字典(@H_355_1@map)的容量只受到内存的限制。在@L_607_0@字典中,所有的键都是唯一的,并且必须支持==和!=操作符的类型。如果试图赋值给同@L_607_0@键,后赋值的值将会覆盖原有值。


@H_355_1@map的创建和填充

@H_355_1@map的定义有两种:

1、初始化数据的定义方式。

2、使用make函数来定义。

输出结果:

Map literal at "one" is: 1

Map created at "key2" is: 3.141590

Map assigned at "two" is: 3

Map literal at "ten" is: 0

其中mapLit使用方法一定义;而mapCreated使用方法二。

---------------------------------------------

map的使用过程中需要注意以下几点:

1、map是无序的,每次打印出来的map都不会一样,它不能够通过index获取,而必须通过key获取

2、map的长度不是固定的。和slice类似,map也是一种引用类型;

3、内置的len函数同样适用于map,返回map拥有的key的数量

4、map的值可以很方便修改


@H_355_1@map的访问

当访问元素所对应的键存在于字典中,那么肯定没有问题,能够获得对应的元素。但是如果不存在呢?

这个时候会返回零值,对于字符串的零值就是"",对于整数的零值就是0.

但是会存在这样的情况:

这个时候会输出:0。但是这个就与A键值对应的值混淆了。Go提供一种方法解决这个问题。

此时使用X["E"]有两个返回值。@L_607_0@是值,@L_607_0@是否存在该键的bool型变量。

也就是:

_,ok := map1[key1] // ok == true if key1 is present,false otherwise


@H_355_1@map的删除元素

Go语言提供了内置函数delete,这个函数可以用来从字典中删除元素。

输出结果:

删除元素前map长度为4,删除之后长度为3.<这里使用len函数@L_567_7@map的长度>。

此外,如果你试图删掉@L_607_0@不存在于map的键,程序不会报错。只是不会对map有任何影响。


for...range结构

---------------------------------------------

for...range结构可以用于map。


for key,value := range map1 {

//do something

}

第一返回值为键(key),第二个返回值为值(value)。这两个值是仅仅作用于for循环内部的局部变量。例如:

输出结果:


这里我们同时能看出,map是无序的

---------------------------------------------

如果你只关心值(value),可以这么使用:

for _,value := range map1 {

//do something

}

输出结果:

---------------------------------------------

如果你只关心键(key),可以这么使用:

for key := range map1 {

fmt.Printf(“key is: %d\n”,key)

}

输出结果:

--------------------总结--------------------

到今天为止我们学习了go语言所有的内置类型。

包括:布尔型、数值型、字符串、数组、slice和map。

---------------------------------------------

欢迎关注码术!一起学习Golang语言。

大佬总结

以上是大佬教程为你收集整理的学习Golang语言(7):类型--字典全部内容,希望文章能够帮你解决学习Golang语言(7):类型--字典所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。