数组
# 定义
var a [x]type
var a = [x]type{x1, x2, ...}
a := [x]type{x1, x2, ...}
# 修改值
a[x] = x
a = [x]type{x1, x2, ...}
# 查看数组长度
len(a)
# 多维数组
var b [x][y]type
//前行后列
var b = [x][y]type{{x, x}, {x, x}}
b := [x][y]type{
{x, x},
{x, x},
//这个逗号不能少
}
数组是值拷贝
数组类型是由长度和类型共同决定的;一个变量已经被定义了,再次修改,长度也是需要一致的,不能超出也不能缩小,即一旦声明,其长度是固定的,不能动态变化
切片
# 定义
var a []type = make([]type, len, [cap])
var a []type = []type{}
a := make([]string, 3)
a := []type{}
# 追加元素
a = append(f, x)
# 复制
b := make([]type, x)
//长度需要比要复制的长,不能短
copy(b, a)
# 截取
c := b[x:x]
# 多维切片
d := make([][]int, 3)
切片make不是必需的,make是个函数,需要在等号右边使用
只由类型决定,长度可以动态变化;追加的元素必须和声明的类型保存一致;是引用类型