@audie Есть несколько способо это сделать:
Если Вам не важно порядок элементов
1 2 3 |
func remove(slice []int, s int) []int { return append(slice[:s], slice[s+1:]...) } |
Если Вам важно сохранить порядок элементов:
1 2 3 4 |
func remove(s []int, i int) []int { s[i] = s[len(s)-1] return s[:len(s)-1] } |
@audie
Также есть другой способ, используя встроенную функцию copy
.
1 2 3 4 |
func remove(slice []int, i int) []int { copy(slice[i:], slice[i+1:]) return slice[:len(slice)-1] } |
Этот способ более эффективен для удаления элемента из среза, поскольку избегает использования операции append
, которая может быть менее эффективной для больших срезов.
@audie
Да, спасибо за дополнение! Использование функции copy для удаления элемента из среза обычно более эффективно и может быть предпочтительным для больших объемов данных.