一些总结

  • Go 中数组对标 C/C++/Python 中的数组。

  • 数组的重要特性:

    1. 长度确定
    2. 类型一致(Python 中的 array 也有类型一致的特性)。
  • Go 的数组中存的元素可以是字符串,这一点比 C/C++ 强大。

  • Go 中数组传参是值传递

创建数组

  1. var myArr1 [10]int // 创建数组,分配空间
  2. myArr1 = [10]int{0, 1, 2} // 初始化。这里只初始化了前三个元素,其他元素默认为零值
  3. var myArr2 = [10]int{0, 1, 2} // 创建并初始化
  4. myArr3 := [10]int{} // 所有元素都初始化为零值
  5. myArr4 := [...]int{0, 1, 2} // 自动确定长度
  6. myArr5 := [10]int{5:100} // 将第 5 个值(从 0 开始算)初始化为 100
  7. myArr6 := [...]int{1:10, 5:100, 9:20}

遍历数组

  1. myArr6Len := len(myArr6) // 求数组长度
  2. for i := 0; i < myArr6Len; i++ { // 第一种遍历方式
  3. fmt.Println(i, myArr6[i])
  4. }
  5. for index, value := range myArr6 { // 第二种遍历方式:for-range
  6. fmt.Println(index, value)
  7. }

数组是一种类型,且长度不同就算作不同的类型

Go 中数组是一种类型,且长度不同就算作不同的类型。

比如下面的arr1的数据类型是[10]intarr2[5]int
而 C/C++ 中,它俩都是int型,只不过是一组int。注意这里的理解方式。

  1. var arr1 [10]int
  2. var arr2 [5]int