4.1 数组

一、数组

  1. 定义方法

    1. 定义普通的数组:

      var arr1 [5]int

      备注:数量写在类型前面

    2. :=定义数组

      arr2 := [3]int{1, 3, 5}

      注意:需要赋予初始值

    3. 定义任意数量数组

      arr3 := [...]int{2, 4, 6, 8, 10, 12}

      注意:用...来让编译自动计算数量

    4. 定义二维数组

      // 定义4行5列二维数组
      var grid [4][5]int
  2. 遍历数组

    1. 普通方式遍历

      // 普通方式遍历
      for i := 0; i < len(arr3); i++ {
      	fmt.Println(arr3[i])
      }
    2. 使用range关键字

      // 建议方式遍历,直接获取下标
      for i := range arr3 {
      	fmt.Println(arr3[i])
      }
      
      // 建议方式遍历,获取下标+值
      for i, v := range arr3 {
      	fmt.Println(i, v)
      }
      
      // 只获取值的方式
      for _, v := range arr3 {
      	fmt.Println(v)
      }

二、range关键字

  1. 语义明确,美观

  2. 可以同时获取下标与值

三、数组是值类型

  1. [10]int和[20]int是不同类型

  2. 使用func f(arr [10]int)会拷贝数组

  3. 如果希望在方法中改变值,可以使用指针

  4. 在go语言中,一般不直接使用数组,而是切片

Last updated

Was this helpful?