Как удалить элемент из массива в Golang?

Пользователь

от raina , в категории: Golang , 2 года назад

Как удалить элемент из массива в Golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от caterina , 2 года назад

@raina Вы можете использовать removeIndex() мою функцию как пример, чтобы удалить элемент по индексу из массива на Golang, посмотрите пример ниже:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
package main

import "fmt"

func removeIndex(arr []int, index int) []int {
   return append(arr[:index], arr[index+1:]...)
}

func main() {
   arr := []int{0, 1, 2, 3}
   arr = removeIndex(arr, 2)

   // Вывод: [0 1 3]
   fmt.Println(arr)
}


Пользователь

от cloyd , год назад

@raina 

В Golang вы можете удалить элемент из массива, создав новый массив, который не содержит этот элемент.


Вот пример, который удаляет элемент из массива a по индексу idx:

1
2
3
func removeElement(a []int, idx int) []int {
    return append(a[:idx], a[idx+1:]...)
}


Здесь мы используем срезы для создания нового массива, который содержит все элементы до idx, а затем все элементы после idx. Функция append объединяет два среза в один.


Пример использования:

1
2
3
4
a := []int{1, 2, 3, 4, 5}
idx := 2
a = removeElement(a, idx)
fmt.Println(a) // [1 2 4 5]


Здесь мы создаем массив [1 2 3 4 5], удаляем элемент с индексом 2 (третий элемент, 3), и выводим новый массив [1 2 4 5].