一些总结
Go 中数组对标 C/C++/Python 中的数组。
数组的重要特性:
- 长度确定。
- 类型一致(Python 中的 array 也有类型一致的特性)。
Go 的数组中存的元素可以是字符串,这一点比 C/C++ 强大。
Go 中数组传参是值传递。
创建数组
var myArr1 [10]int // 创建数组,分配空间
myArr1 = [10]int{0, 1, 2} // 初始化。这里只初始化了前三个元素,其他元素默认为零值
var myArr2 = [10]int{0, 1, 2} // 创建并初始化
myArr3 := [10]int{} // 所有元素都初始化为零值
myArr4 := [...]int{0, 1, 2} // 自动确定长度
myArr5 := [10]int{5:100} // 将第 5 个值(从 0 开始算)初始化为 100
myArr6 := [...]int{1:10, 5:100, 9:20}
遍历数组
myArr6Len := len(myArr6) // 求数组长度
for i := 0; i < myArr6Len; i++ { // 第一种遍历方式
fmt.Println(i, myArr6[i])
}
for index, value := range myArr6 { // 第二种遍历方式:for-range
fmt.Println(index, value)
}
数组是一种类型,且长度不同就算作不同的类型
Go 中数组是一种类型,且长度不同就算作不同的类型。
比如下面的arr1
的数据类型是[10]int
,arr2
是[5]int
。
而 C/C++ 中,它俩都是int
型,只不过是一组int
。注意这里的理解方式。
var arr1 [10]int
var arr2 [5]int