数组
概念说明
数组(Array)是长度固定、元素类型相同的序列。
在 Go 中,数组长度也是类型的一部分,例如 [3]int 和 [4]int 是不同类型。
数组适合存放“数量固定、类型一致”的数据。
语法/规则
- 声明数组时必须确定长度,可以显式写长度,也可以使用
...自动推导长度。 - 数组索引从
0开始,最大索引是len(array)-1。 - 数组元素可以通过索引读取和修改。
- 数组支持
for和for range遍历。 - 未显式赋值的元素会使用对应类型的零值。
定义与索引修改示例
| |
输出结果:
| |
索引与遍历示例
| |
输出结果:
| |
range 解析
在 for i, v := range letters 里,range 会按顺序遍历 letters。
i表示当前元素的索引(从0开始)。v表示当前索引对应的元素值。
这种写法比手动控制索引边界更直观,也更不容易写错。
如果你想进一步了解 range 在字符串、map、channel 上的行为,可以查看 range 详解
。
常见错误
- 使用越界索引(例如
letters[4]),会触发index out of range。 - 把不同长度的数组当作同一类型使用(如
[3]int赋值给[4]int)会编译失败。 - 误以为 Go 支持负索引(如
letters[-1]),Go 不支持这种写法。 - 把数组当切片使用
append,会编译报错,append只作用于切片。