19 Go的数组和切片
且看官网文档:
- 数组:https://wizardforcel.gitbooks.io/golang-doc/content/37.html
- 切片:https://wizardforcel.gitbooks.io/golang-doc/content/37.html
参考链接
数组
- 一维数组
- 定义:
var variable_name [SIZE] variable_type
- 初始化:
var balance = [5]int{1, 2, 4, 5, 3}
var balance = []int{1, 2, 4, 5, 3}
- 多维数组:
var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type
、- 数组指针:
var a * [3] int
- 指针数组:
var a [3] * int
切片
定义
var identifier []type
,切片不需要说明长度
var slical []type = make([]type, len)
slical := make([]make, len)
指定切片的容量,可以不写,要求
length <= capacity
make ([]T, length, capacity)
区别
- 数组是
值类型;
切片是引用类型
- 数组做函数参数,拷贝一个数组传递;切片是指向一个数组切片的指针
- 数组的长度也是
Type
的一部分;切片总是指向底层的数组的数据结构
代码论证
由于Go的数组
- 代码
1 | package main |
- 运行结果
1 | a = &[1 2 3], b = &[1 2 3] |
论证结果
数组是
值类型;
切片是引用类型