filter

循环截取法

fori
    numbers := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
    for i := 0; i < len(numbers); i++ {
        if numbers[i]%2 == 0 { // 如果是偶数就删除
            // 通过截取删除
            numbers = append(numbers[:i], numbers[i+1:]...)
            i--
        }
    }
    fmt.Println(numbers) // [1 3 5 7 9]

移位覆盖法

j
    numbers := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
    j := 0
    for _, num := range numbers {
        if num%2 == 0 { // 如果是偶数就删除
            continue
        }

        numbers[j] = num
        j++
    }
    fmt.Println(numbers[:j]) // [1 3 5 7 9]

最后,推荐使用第二种方法,性能更好。