Go 数组

3 阅读3分钟
  1. 数组的基本用法

    • 定义数组:在Go语言中,数组是具有固定长度的数据结构,存储相同类型的元素。定义数组的语法是[n]T,其中n是数组的长度,T是元素的类型。例如,var arr [5]int定义了一个长度为5的整数数组。
    • 访问数组元素:可以通过索引来访问数组中的元素,索引从0开始。例如,对于上述数组arrarr[0]表示访问第一个元素,arr[4]表示访问最后一个元素。如果访问超出数组范围的索引(如arr[5])会导致程序出现运行时错误(panic)。
    • 修改数组元素:可以通过索引来修改数组元素的值。例如,arr[2] = 10将数组arr中的第三个元素(索引为2)的值修改为10。
  2. 数组的初始化

    • 初始化方式一:逐个元素初始化:可以在定义数组后,逐个为元素赋值。例如:
    var arr [3]int
    arr[0] = 1
    arr[1] = 2
    arr[2] = 3
    
    • 初始化方式二:使用初始化列表:在定义数组时,使用花括号{}来提供初始值。例如,arr := [3]int{1, 2, 3}定义并初始化了一个长度为3的整数数组。如果提供的初始值数量少于数组长度,剩余元素将被初始化为对应类型的零值。例如,arr := [5]int{1, 2},数组arr的值为[1, 2, 0, 0, 0]。如果不指定数组长度,编译器会根据初始化列表中的元素个数自动确定数组长度。例如,arr := []int{1, 2, 3},这里编译器会推断数组长度为3。
    • 初始化方式三:使用...语法(仅适用于初始化列表):这种方式可以让编译器根据初始化列表自动确定数组长度。例如,arr := [...]int{1, 2, 3},编译器会自动确定数组长度为3。
  3. 多维数组

    • 定义多维数组:多维数组是数组的数组。例如,二维数组的定义语法是[n][m]T,其中n是外层数组的长度,m是内层数组的长度,T是元素的类型。例如,var matrix [3][4]int定义了一个3行4列的二维整数数组。
    • 初始化多维数组
      • 逐个元素初始化:可以像初始化一维数组一样,逐个为元素赋值。例如:
      var matrix [2][3]int
      matrix[0][0] = 1
      matrix[0][1] = 2
      matrix[0][2] = 3
      matrix[1][0] = 4
      matrix[1][1] = 5
      matrix[1][2] = 6
      
      • 使用初始化列表初始化:例如,matrix := [2][3]int{{1, 2, 3}, {4, 5, 6}},外层花括号表示行,内层花括号表示列,初始化了一个2行3列的二维整数数组。
    • 访问和修改多维数组元素:通过多个索引来访问和修改元素。例如,对于上述二维数组matrixmatrix[1][2]表示访问第二行第三列的元素,matrix[0][1] = 7表示修改第一行第二列的元素的值为7。在访问和修改元素时,同样要注意索引不要超出数组的范围。