Go+字典、数组

举报
XiaoLin_Java 发表于 2022/03/27 20:59:25 2022/03/27
【摘要】 字典Map 概述    字典是Go+内置的一种数据结构,他指的是一组键值对无序的集合。他的基本格式是map[key的类型]value的类型,字典和切片比较类似,切片是用索引来进行读写操作的,而字典是用key来进行读写操作的。 map的相关使用    我们有两种方式定义map:使用关键字定义。使用make()函数。 使用关键字    我们使用这个方法定义map出来的时候,如果我们没有进行初始...

字典Map

概述

    字典是Go+内置的一种数据结构,他指的是一组键值对无序的集合。他的基本格式是map[key的类型]value的类型,字典和切片比较类似,切片是用索引来进行读写操作的,而字典是用key来进行读写操作的。

map的相关使用

    我们有两种方式定义map:

  1. 使用关键字定义。
  2. 使用make()函数。

使用关键字

    我们使用这个方法定义map出来的时候,如果我们没有进行初始化的时候,这个map是一个空的map,也就是一个nil的map,我们是无法使用一个空的map进行存储键值对的,他的语法格式如下:

var 变量名 map[key的类型]value的类型
var address map[string]string // 我们就定义了一个Stirng类型的key和Stirng的value的map

使用make函数

    我们也可以使用内置函数去定义一个map,使用这个方法定义一个map可以避免上面的问题,所以我们一般使用这个方法去定义一个map,他的语法如下:

变量名 := make(map[key的类型]value的类型)
address := make(amp[string]string)

设置值

    设置值我们就是根据key来进行设置的。

字典名["key值"] = "value值"
name["zs"] = "张三"

取值

studentName = name["zs"]

删除某个key

    说完了增加,我们来说说删除,删除一个key我们可以使用内置函数delete()函数来进行删除。他的语法格式如下:

delete(map的名称,"需要删除的key")
delete(name,"zs")

练习

name := make(map[string]string)
name["zs"] = "张三"
name["ls"] = "李四"
println(name) // map[ls:李四 zs:张三]

数组

概述

    Go+提供了一种长度固定的数据结构结构,他就是数组,他可以用于存放多个相同类型的数据,比如我们要存放100个同学的姓名,我们需要name1、name2、name3…这样来命名,略显繁琐,遇到这种情况,我们可以直接使用数组来进行存储。我们再根据索引(下标)去取值,他的下标是从0开始的,第一个下标是1,初学者可能不是很习惯这种方式。

声明数组

    我们在声明数组的需要同时指定元素个数、元素类型,已经定义长度是可以更改的,他的语法格式如下:

var 变量名 [100] string
var name [100] string

    这样我们就定义了一个名称叫name,长度为100,数据类型为String的一维数组。

数组初始化

    定义完了数组,我们需要对数组进行初始化,他有两种初始化的方式:

var name = [100]string{"zs","li","ww"}
// 或者也可以使用这一种
name := [100]string{"zs","li","ww"}

    要注意的是,我们在对数组进行初始化的时候,我们初始化的量不能超过我们设置的容量大小,也就是说{}里面的值的数量<=[]里面的数量。

    如果我们在定义之前,确实无法知道确切的长度的时候,我们可以使用...来作为数组的长度,表示告诉Go+我不知道接下来我定义的数组长度有多大,Go+会自动根据你传进来的值进行判断。

var name = [...]string{"zs","li","ww"}
// 或者也可以使用这一种
name := [...]string{"zs","li","ww"}

    如果我们给中国数组设置了长度的话,我们可以通过下标给指定的元素设置长度。

name := [100]string{1:"zs",99:"ls"}

二维数组

    除了一维数组以外的其他数组我们都称之为多维数组,而多维数组种,我们使用最多的就是二维数组,所谓二维数组就是数组里面嵌套一个数组,他可以实现一些比较复杂的需求。他的定义方式也很简单:

name := [3][2]string{
        {"张三", "李四"},
        {"王五", "赵六"},
        {"孙七", "周八"},
    }

    我们可以把二维数组想象成多行的一维数组。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。