数组
go中数组是一个由固定长度的相同类型元素组成的序列,和C++中的std::array<T>
类似,定义语法如下:
var 数组变量名 [元素数量]Type
初始化
- 字面值初始化:
var arr = [3]int{1, 2, 3}
// 也可以自动推导数组长度
var arr = [...]int{1, 2, 3}
- 部分初始化:
// arr[3]和arr[4]默认为零值
var arr = [5]int{1, 2, 3}
- 指定元素初始化:
// 只有arr[4]是1,其余默认为零值
var arr = [5]int{4: 1}
遍历数组
package main
import (
"fmt"
)
func main() {
arr := [...]int{1, 2, 3}
for i, n := range arr {
fmt.Println(i, n)
}
}
数组是值类型
和C++中std::array<T>
一样,go中数组作为参数传递时也是按值转递,所以会对整个数组进行拷贝。
下标检查
go中访问数组中不存在的下标,会panic报错。
数组比较
若数组元素是可比较的,那么该数组也是可以比较的,==
操作符会自动判断数组中的元素是否一一相等