| 1234567891011121314151617181920212223242526 |
- package main
- import "fmt"
- // remove 返回删除了 index 处元素的新切片
- // 如果 index 越界,原样返回,不做删除
- func remove(s []int, index int) []int {
- if index < 0 || index >= len(s) {
- fmt.Println("数组越界")
- return s // 越界保护
- }
- // 把 index+1 之后的元素整体前移 1 位,再截掉最后一个
- copy(s[index:], s[index+1:])
- return s[:len(s)-1]
- }
- func main() {
- s := []int{1, 2, 3, 4, 5}
- fmt.Println("原始:", s)
- s = remove(s, 2) // 删除下标 2(元素 3)
- fmt.Println("删除后:", s)
- s = remove(s, 0) // 再删除首元素
- fmt.Println("再删首元素:", s)
- }
|