4.1 数组

基本特性

固定长度、同类型元素序列。长度是类型的一部分,[3]int[4]int 是不同类型。元素默认零值初始化。

声明与初始化

var a [3]int                                // [0 0 0]
q := [3]int{1, 2, 3}                       // 指定值
q := [...]int{1, 2, 3}                     // 由初始值推断长度
r := [...]int{99: -1}                      // 100 个元素,最后一个为 -1
symbol := [...]string{USD: "$", RMB: "¥"}  // 按索引初始化

比较

元素类型可比较时,数组支持 ==!=,逐元素比较。不同长度的数组不能比较。

函数传参

数组是值传递(整体复制),修改副本不影响原数组。传大数组低效,可用指针 *[32]byte 避免复制。实际开发中一般用 slice 替代数组。


来源:Go 语言圣经 - 4.1 数组