package main import "fmt" func removeElem(s []int, elem int) []int { out := s[:0] for _, val := range s { if val != elem { out = append(out, val) } } return out } func deleteElem(s []int, elem int) []int { size := len(s) for i := 0; i < size; i++ { if s[i] == elem { s = append(s[:i], s[i+1:]...) i-- size-- } } return s[:size] } func main() { s := []int{1, 2, 3, 4, 5, 6, 6, 1} elem := 6 fmt.Println("remove elem before:", s) s1 := removeElem(s, elem) fmt.Println("remove elem after:", s1) s = []int{1, 2, 3, 4, 5, 6, 6, 1} elem = 1 fmt.Println("delete elem before:", s) s2 := deleteElem(s, elem) fmt.Println("delete elem after", s2) }