一、数组
- 数组是定长的,一旦定义不可变长
- 数组是值类型,赋值给第二个数组后,原来数组的元素不会随第二个数组的元素的值改变而改变
- go 中数组元素打印出来 不用
,
隔开 - 遍历:
- 多维数组:
二、切片(slice)
- 切片的底层还是一个数组,切片可变长,相当于在底层数组上一个可移动,可变长的框
- 切片是引用类型,切片值改变,对应底层数组 / 切片也随之改变
- 长度 len() 和容量 cap()
- 容量是指从该切片的起始位置开始,到其底层数组 / 切片的最后一位的元素个数
- 切片和数组初始化的不同:
# 切片 s := [ ]int{1,2,3} # 数组 a :=[...]int{1,2,3}
- 判空:
s1 := [ ]int s2 :=[ ]int{1,2,3} fmt.Println(s1 == nil) //true fmt.Println(s2 == nil) //false
- 由 数组 / 切片 得切片:
- 扩容:append()
- 必须有一个变量结束返回值,一般用原切片
- . . .表示分开