7.1 数组
...大约 1 分钟
7.1 数组
7.1.1 概念
数组是具有相同唯一类型的一组已编号且长度固定的数据项序列。
数组长度必须是常量表达式,且为非负整数。
- 数组长度也是数组类型的一部分,故
[5]int
和[10]int
属于不同类型。 - 数组长度必须在声明时给出
- 数组最大为2GB
- 数组长度也是数组类型的一部分,故
数组元素可以通过索引获取,从0开始
var arr [5]int // 可以改变元素值 arr[0] = 1
声明:
var identifier [len]type
var arr1 [5]int
声明数组时,所有的数组元素将会为默认的零值。
内存中结构为:
数组是一种值类型,故可以通过new()
创建:
var arr = new([5]int)
new([5]int)
: 返回的类型是*[5]int
, 数组的指针;而直接声明的方式返回就是数组类型。
数组类型的赋值,将会进行值的拷贝:
arr2 := *arr
arr[2] = 11
- 修改
arr2
将不会对arr
产生影响
7.1.2 数组常量
可以通过数组常量初始化数组, 有三种方式:
var arr = [5]int{1, 2, 3, 4, 5}
var arr = [...]int{1, 2, 3}
// 指定位置 var arr = [5]int{3: 10, 4: 100} var arr = [...]int{3: 10, 4: 100}
7.1.3 多维数组
var screen [width][height]int
7.1.4 将数组传递给函数
将大数组传给函数会消耗大量内存,两种方式可以避免:
- 传递数组的指针
- 传递数组的切片 :通常使用的方式
Powered by Waline v2.15.2