diff --git a/ch1-basic/ch1-03-array-string-and-slice.md b/ch1-basic/ch1-03-array-string-and-slice.md index 6fa770f..fe48680 100644 --- a/ch1-basic/ch1-03-array-string-and-slice.md +++ b/ch1-basic/ch1-03-array-string-and-slice.md @@ -462,7 +462,15 @@ a = a[:len(a)-1] // 删除尾部1个元素 a = a[:len(a)-N] // 删除尾部N个元素 ``` -删除开头的元素需要对剩余的元素进行一次整体挪动,可以用`append`原地完成(所谓原地完成是指在原有的切片数据对应的内存区间内完成,不会导致内存空间结构的变化): +删除开头的元素可以直接移动数据指针: + +```go +a = []int{1, 2, 3} +a = a[1:] // 删除开头1个元素 +a = a[N:] // 删除开头N个元素 +``` + +删除开头的元素也可以不移动数据指针,但是将后面的数据向开头移动。可以用`append`原地完成(所谓原地完成是指在原有的切片数据对应的内存区间内完成,不会导致内存空间结构的变化): ```go a = []int{1, 2, 3}