Go 切片 Slice
Slice 创建、append、截取、容量、make · 难度:入门 · +20XP
Slice — Go 动态数组
切片(Slice)是 Go 最常用的数据结构。比数组灵活——长度可变。
创建切片
// 字面量
s := []int{1, 2, 3, 4, 5}
// make(指定长度和容量)
s2 := make([]int, 3, 5) // len=3, cap=5,前3个元素为0
// 从数组截取
arr := [5]int{1, 2, 3, 4, 5}
s3 := arr[1:4] // [2, 3, 4],len=3,cap=4
append — 追加元素
s := []int{1, 2, 3}
s = append(s, 4, 5) // [1,2,3,4,5]
s = append(s, moreSlice...) // 追加另一个切片(展开)
append 超过容量时会自动扩容(通常是翻倍),返回新的底层数组。
常用操作
s[1:4] // 截取索引1-3
s[:3] // 前3个
s[2:] // 从索引2到最后
copy(dst, src) // 复制切片
len(s) // 长度
cap(s) // 容量