要删除某切片中符合条件的元素,如果在遍历切片时删除,会引发恐慌,可以使用下面的方法。
比如切片是 从1到9的数字,要删除其中可以整除3的数字,也就是3、6、9
func f() { slice := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} k := 0 for _, n := range slice { if n%3 != 0 { // filter slice[k] = n k++ } } slice = slice[:k] fmt.Println(slice) //[1 2 4 5 7 8] }