目 录CONTENT

文章目录

Go学习系列08-数组

cplinux98
2022-11-08 / 0 评论 / 1 点赞 / 394 阅读 / 654 字 / 正在检测是否收录...

什么是数组

数组是具有固定长度且拥有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
1

评论区