数组的定义

// 方法一:必须指定数组的容量
var arrayOne [3]int
arrayOne[0] = 100
arrayOne[1] = 200
arrayOne[2] = 300
fmt.Println("arrayOne value:", arrayOne)

// 方法二:直接在定义时初始化,我们定义容量为3,但是只初始化了前两个元素,剩下的值会被初始化定义类型的零值
arrayTwo := [3]int{1, 2}
fmt.Println("arrayTwo value:", arrayTwo, "len", len(arrayTwo), "cap:", cap(arrayTwo))

// 方法三:只初始化值,不指定具体的长度,golang会自动推导长度,此时长度就固定了
arrayThree := [...]int{1, 2, 3, 4}
fmt.Println("arrayThree value:", arrayThree, "len", len(arrayThree), "cap:", cap(arrayThree))

image.png

数组的访问

使用下标访问

// 定义容量为6的数组
arrayThree := [6]int{1, 200, 3, 4}
// 访问下标为1的元素
fmt.Println("arrayThree index 1 value:", arrayThree[1])

image.png

数组元素值的覆盖

// 方法一:必须指定数组的容量
var arrayOne [3]int
arrayOne[0] = 100
fmt.Println("arrayOne[0] value:", arrayOne[0])

// 对其进行覆盖
arrayOne[0] = 6666
fmt.Println("arrayOne[0] value:", arrayOne[0])

image.png

数组的遍历

arrayThree := [6]int{1, 200, 3, 4}

for index, value := range arrayThree {
    fmt.Println("下标 index:", index, "元素值 value:", value)
}

image.png

越界访问

下标越界的场景,定义了容量为6个元素的数组,访问下标为7的元素

arrayThree := [6]int{1, 2, 3, 4}
arrayThree[7] = 5
fmt.Println("arrayThree value:", arrayThree)

image.png


Architecture
0 声望0 粉丝

知其然, 更要知其所以然~