Go+字典、数组

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

字典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{
        {"张三", "李四"},
        {"王五", "赵六"},
        {"孙七", "周八"},
    }
复制代码

   

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



相关文章
|
29天前
|
存储 前端开发 Go
Go语言中的数组
在 Go 语言中,数组是一种固定长度的、相同类型元素的序列。数组声明时长度已确定,不可改变,支持多种初始化方式,如使用 `var` 关键字、短变量声明、省略号 `...` 推断长度等。数组内存布局连续,可通过索引高效访问。遍历数组常用 `for` 循环和 `range` 关键字。
|
21天前
|
Java Go 数据处理
go语言使用切片而非数组
【10月更文挑战第18天】
11 1
|
5月前
|
Go
go语言数组与切片
go语言数组与切片
|
2月前
|
Go
go语言创建字典
go语言创建字典
|
2月前
|
编译器 Go 索引
Go to Learn Go之数组
Go to Learn Go之数组
28 0
|
2月前
|
编译器 Go 索引
Go数组、多维数组和切片(动态数组),及常用函数len(),cap(),copy(),append()在切片中的使用
本文介绍了Go语言中数组、多维数组和切片(动态数组)的基本概念和操作,包括数组的定义、初始化、访问,多维数组的定义和访问,以及切片的创建、使用和扩容。同时,还讲解了切片中常用的函数len()、cap()、copy()和append()的使用方法。
|
3月前
|
存储 编译器 Go
|
3月前
|
存储 Go 数据处理
C 数组和 Go 切片的区别详解
【8月更文挑战第31天】
38 0
|
3月前
|
存储 Go 容器
Go从入门到放弃之map(字典)
Go从入门到放弃之map(字典)
|
3月前
|
人工智能 编译器 Go
Go从入门到放弃之数组、切片
Go从入门到放弃之数组、切片