从切片中删除项目

时间:2018-10-14 20:05:47

标签: go

我在Golang切片上遇到了一些问题。

我知道切片是指向底层数组的指针,但是某些行为让人感到有些奇怪。

我试图通过复制切片来从切片中删除项目,有没有更好的方法?

在原始切片下面的代码中进行了更改。

package main

import (
    "fmt"
)

func main() {
    mySlice := []int{1,2,3,4,5,6}
    pos := 3

    slicePart1 := mySlice[:pos+1]
    slicePart2 := mySlice[pos+2:]

    fmt.Println(mySlice)
    fmt.Println(slicePart1)
    fmt.Println(slicePart2)
    new := append(slicePart1,slicePart2...)
    fmt.Println(new)
    fmt.Println(mySlice)
}

1 个答案:

答案 0 :(得分:6)

例如,

cuisine

游乐场:https://play.golang.org/p/SVQEUE7Rrei

输出:

id

或者,如果顺序不重要,

package main

import "fmt"

func main() {
    s := []int{1, 2, 3, 4, 5, 6}
    fmt.Println(s)
    i := 3
    fmt.Println(i)
    s = append(s[:i], s[i+1:]...)
    fmt.Println(s)
}

游乐场:https://play.golang.org/p/lVgKew3ZJNF

输出:

[1 2 3 4 5 6]
3
[1 2 3 5 6]

有关其他几种方式,请参见SliceTricks