【初探Go语言】Go 语言之数组

作者: hedeqiang

发布时间: 2021-06-08 23:15:01

什么是数组

数组是具有固定长度且长度为 0 个或多个相同数据类型的元素的集合。

如何理解上边的解释呢? 与 PHP 语言不同,在 Go 语言中,数组的长度是固定的,并且必须是同一类型的数据集合

数组中包含的每个数据项被称为数组元素,一个数组包含的元素个数被称为数组的长度。

简而言之就是 大小确定、类型一致。

在 PHP 语言中我们的数组可以是任意类型,例如 [1,2,3,"hah"], 但是在 Go 语言中这种是不允许的,必须是同一种数据类型才可以。

初始化数组

申明数组

var name [5]string

申明并赋值

var name = [2]string{"PHP","Go"}

短变量

name := [2]string{"PHP","Go"}

另外假如在数组初始化时,不确定数组的元素,那么可以使用如下的方式进行数组申明。其数组的长度由初始化数组的元素个数来决定

name := [...]string{"PHP","Go","Python"}

另外需要注意的是,假设数组在初始化时,数组元素个数不足申明的长度是,则默认会填充 该类型的零值,例如 string 会是 空值。int 则会补 0.

注意 数组长度在声明后就不可更改,在声明时可以指定数组长度为一个常量或者一个常量表达式

访问数组元素

数组的访问 和大多数编程语言一样,通过下标来进行访问。,下标从 0 开始。 len(arr)-1 表示数组的最后一个的下标

例如:

age := [5]int{18,20,34,44,66}
fmt.Println(age[1]) //20

当访问一个远超出数组下标的元素时,例如下标只到 3,访问下标为 5 的元素时则会报索引越界异常错误.

age := [5]int{18,20,34,44,66}
fmt.Println(age[7]) // invalid array index 7 (out of bounds for 5-element array)

修改数组

同访问数组一样,修改数组的元素,也可以通过小标来进行修改。例如:

age := [5]int{18,20,34,44,66}
age[2] = 99

遍历数组

和其他编程语言一样,我们可以使用 for 循环来进行遍历数组

age := [5]int{18,20,34,44,66}
for i := 0; i < len(age);i++{
    fmt.Println(age[i])
}

但其实在 Go 语言中,提供了一个 range,用于处理遍历数组的问题

age := [5]int{18,20,34,44,66}

for index,item := range age {
    fmt.Println("index:", index , "item:" , item)
}

数组的一些基本操作到此就结束了,本人也是初学 Go,特此写出来乙供参考。有不足之处还请指正。

这节内容请记住,数组类型的值得长度是固定的。另外数组是值类型

关于极客返利

极客返利 是由我个人开发的一款网课返利、返现平台。包含 极客时间返现、拉勾教育返现、掘金小册返现、GitChat返现。目前仅包含这几个平台。后续如果有需要可以考虑其他平台。 简而言之就是:你买课,我返现。让你花更少的钱,就可以买到课程。

https://geek.laravelcode.cn

https://geek.idaka.ink

版权许可

本作品采用 知识共享署名 4.0 国际许可协议 进行许可。

转载无需与我联系,但须注明出处,注明文章来源 【初探Go语言】Go 语言之数组