package main import "fmt" func main() { //删除开头的元素可以直接移动数据指针: a := []int{1, 2, 3} a = a[1:] // 删除开头1个元素 a = a[N:] // 删除开头N个元素 fmt.Println(a) //也可以不移动数据指针,但是将后面的数据向开头移动,可以用 append 原地完成 //(所谓原地完成是指在原有的切片数据对应的内存区间内完成,不会导致内存空间结构的变化): a = []int{1, 2, 3} a = append(a[:0], a[1:]...) // 删除开头1个元素 a = append(a[:0], a[N:]...) // 删除开头N个元素 //还可以用 copy() 函数来删除开头的元素: a = []int{1, 2, 3, ...} a = append(a[:i], a[i+1:]...) // 删除中间1个元素 a = append(a[:i], a[i+N:]...) // 删除中间N个元素 a = a[:i+copy(a[i:], a[i+1:])] // 删除中间1个元素 a = a[:i+copy(a[i:], a[i+N:])] // 删除中间N个元素 }