mirror of
https://github.com/chai2010/advanced-go-programming-book.git
synced 2025-05-24 12:32:21 +00:00
ch1-03: 完善删除切片开头元素的方式
This commit is contained in:
parent
f5504198aa
commit
c36e10a31c
@ -462,7 +462,15 @@ a = a[:len(a)-1] // 删除尾部1个元素
|
|||||||
a = a[:len(a)-N] // 删除尾部N个元素
|
a = a[:len(a)-N] // 删除尾部N个元素
|
||||||
```
|
```
|
||||||
|
|
||||||
删除开头的元素需要对剩余的元素进行一次整体挪动,可以用`append`原地完成(所谓原地完成是指在原有的切片数据对应的内存区间内完成,不会导致内存空间结构的变化):
|
删除开头的元素可以直接移动数据指针:
|
||||||
|
|
||||||
|
```go
|
||||||
|
a = []int{1, 2, 3}
|
||||||
|
a = a[1:] // 删除开头1个元素
|
||||||
|
a = a[N:] // 删除开头N个元素
|
||||||
|
```
|
||||||
|
|
||||||
|
删除开头的元素也可以不移动数据指针,但是将后面的数据向开头移动。可以用`append`原地完成(所谓原地完成是指在原有的切片数据对应的内存区间内完成,不会导致内存空间结构的变化):
|
||||||
|
|
||||||
```go
|
```go
|
||||||
a = []int{1, 2, 3}
|
a = []int{1, 2, 3}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user