什么是数组
数组是具有固定长度且拥有0个或多个相同数据类型元素的组合。
在Go语言中,由于数组的长度是固定的,所以很少使用数组,而是使用slice切片,这个切片也符合我们使用python时的list
初始化数组
初始化数组有三种方式
-
var list [5]string [长度]元素类型
-
var list [5]string{ "a", "b", "c", "d", "e" } 类型后面可以接初始值,没有接初始值的话,就是对应类型的默认值
-
list := [5]string{ "a", "b", "c", "d", "e" }
-
list := [...]string{ "a", "b", "c", "d", "e" } 可以在声明的时候用 ... 来代替数组长度里的数字,此时go语言会根据后面初始化的元素个数来推导出元素数量
数组的性质
- 有序的
- 定义后不可再变化长度的
- 元素必须是同一个类型的
访问数组元素
可以使用index来访问对应索引位置的元素,这和python的list[index]很像,索引的起始位置也是0
var list2 = [5]string{
"a", "b", "c", "d", "e"
}
fmt.Println(list2[0]) // a
获取数组元素时,只返回该元素,不会包括大括号和双引号
但是索引不能是负数,没有像python中的[-1]这样,直接取到最后一个值
可以使用len(数组) - 1
来获取最后一个元素的索引
var list2 = [5]string{
"a", "b", "c", "d", "e"
}
fmt.Println(list2[len(list2) - 1]) // e
遍历数组
在go语言中,我们通常使用 for range来遍历数组
for index,item := range list{
}
- index是列表的索引
- item是列表中对应索引位置的元素
修改数组中的元素
修改数组中的元素的语法与访问数组中的元素的语法类似,想要修改数组中的元素,需要先指定数组名和要修改的元素的索引,再指定该元素的新值。
var list = [3]string{"a","b","c"}
list[0]="d"
fmt.Println(list)
数组越界
数组中的index是从0开始的,你要的第几个元素和索引的关系是-1
go语言中索引超界的报错为:
invalid argument: array index 3 out of bounds [0:2]
python中索引超界的报错为:
IndexError: list index out of range
评论区