数组
声明方式
var arr [N]T // 这是数组
var arr1 []T // 这是切片?是
// 初始化赋值
var arr2 = [N]/[...]int {x,x,x,x,x,}
// 稀疏矩阵初始化赋值
var arr3 = [...]int {
99:x1, // 下标99的值赋值为x1
13:x2, // 下标13的值赋值为x2
}
Go语言,数组不仅在逻辑上连续,在go 运行时也是在内存分配一整块连续的内存。通过内建函数len、以及unsafe.Sizeof可获取长度额大小
切片
声明方式
// 同数组的却别在于没有长度
var nums = []int{1,23,4,2}
// go运行时的数据结构表示
type slice struct {
array unsafe.Pointer
len int
cap int
}
// 声明方式一:make
// 声明方式二:array[low:high:max], low:high 按下标左闭右开
// 声明方式三:基于切片创建切片,类似二