Golang 集合类型 Array数组定义和初始化以及遍历 |
您所在的位置:网站首页 › golang中的复合类型有 › Golang 集合类型 Array数组定义和初始化以及遍历 |
在实际需求中,我们会有很多同一类型的元素放在一起的场景,这就是集合,例如 100 个数字,10 个字符串等。在 Go 语言中,数组(array)、切片(slice)、映射(map)这些都是集合类型,用于存放同一类元素。虽然都是集合,但用处又不太一样。 Array(数组)数组存放的是固定长度、相同类型的数据,而且这些存放的元素是连续的。所存放的数据类型没有限制,可以是整型、字符串甚至自定义。 数组声明数组的定义:var 数组名 [数组大小]数据类型 var a [5]int 赋初值a[0]=1 a[1]=30.… 要声明一个数组非常简单,语法和第二课时介绍的声明基础类型是一样的。 在下面的代码示例中,我声明了一个字符串数组,长度是 5,所以其类型定义为 [5]string,其中大括号中的元素用于初始化数组。此外,在类型名前加 [ ] 中括号,并设置好长度,就可以通过它来推测数组的类型。 在定义数组的时候直接初始化 注意:[5]string 和 [4]string 不是同一种类型,也就是说长度也是数组类型的一部分。 array:=[5]string{"a","b","c","d","e"}数组在内存中都是连续存放的,下面通过一幅图片形象地展示数组在内存中如何存放: 可以看到,数组的每个元素都是连续存放的,每一个元素都有一个下标(Index)。下标从 0 开始,比如第一个元素 a 对应的下标是 0,第二个元素 b 对应的下标是 1。以此类推,通过 array+[下标] 的方式,我们可以快速地定位元素。 如下面代码所示,运行它,可以看到输出打印的结果是 c,也就是数组 array 的第三个元素: func main() { array:=[5]string{"a","b","c","d","e"} fmt.Println(array[2]) }在定义数组的时候,数组的长度可以省略,这个时候 Go 语言会自动根据大括号 {} 中元素的个数推导出长度,所以以上示例也可以像下面这样声明: array:=[...]string{"a","b","c","d","e"}以上省略数组长度的声明只适用于所有元素都被初始化的数组,如果是只针对特定索引元素初始化的情况,就不适合了,如下示例: array1:=[5]string{1:"b",3:"d"}示例中的「1:"b",3:"d"」的意思表示初始化索引 1 的值为 b,初始化索引 3 的值为 d,整个数组的长度为 5。如果我省略长度 5,那么整个数组的长度只有 4,显然不符合我们定义数组的初衷。 此外,没有初始化的索引,其默认值都是数组类型的零值,也就是 string 类型的零值 "" 空字符串。 除了使用 [] 操作符根据索引快速定位数组的元素外,还可以通过 for 循环打印所有的数组元素,如下面的代码所示: for i:=0;i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |