Go语言中的复合类型:切片、映射和结构体的深入解析
1. 切片元素的移除操作
在Go语言里,从切片中间移除元素时,有两种不同的处理方式,这取决于是否需要保留剩余元素的顺序。
- 保留顺序的移除 :若要保留剩余元素的顺序,可以使用
copy函数将较高编号的元素向下滑动一位,以此填补空缺。下面是示例代码:
func remove(slice []int, i int) []int {
copy(slice[i:], slice[i+1:])
return slice[:len(slice)-1]
}
func main() {
s := []int{5, 6, 7, 8, 9}
fmt.Println(remove(s, 2)) // "[5 6 8 9]"
}
- 不保留顺序的移除 :若不需要保留顺序,可直接将最后一个元素移到空缺位置。示例代码如下:
func remove(slice []int, i int) []int {
slice[i] = slice[len(slice)-1]
return slice[:len(slice)-1]
}
func main() {
s := []int{5, 6, 7, 8, 9}
fmt.Println(remove(s, 2)) // "[5 6 9
超级会员免费看
订阅专栏 解锁全文
4万+

被折叠的 条评论
为什么被折叠?



