一些总结
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 开始算)初始化为 100myArr6 := [...]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-rangefmt.Println(index, value)}
数组是一种类型,且长度不同就算作不同的类型
Go 中数组是一种类型,且长度不同就算作不同的类型。
比如下面的arr1的数据类型是[10]int,arr2是[5]int。
而 C/C++ 中,它俩都是int型,只不过是一组int。注意这里的理解方式。
var arr1 [10]intvar arr2 [5]int
