How to remove an element from slice by index in Go

2 Answers

0 votes
package main
  
import (
    "fmt"
)
  
func main() {
    slice := []int{4, 6, 12, 45, 98, 77, 32, 5, 1, 99, 100}

    fmt.Println(slice)
    
    i := 2

    copy(slice[i:], slice[i + 1:]) // Shift left by 1 index 
    fmt.Println(slice)
    slice = slice[:len(slice) - 1] // Remove the last element

    fmt.Println(slice)
} 

   
 
/*
run:
  
[4 6 12 45 98 77 32 5 1 99 100]
[4 6 45 98 77 32 5 1 99 100 100]
[4 6 45 98 77 32 5 1 99 100]
  
*/

 



answered Aug 16, 2020 by avibootz
0 votes
package main
   
import (
    "fmt"
)

func RemoveByIndex(slice []int, index int) []int {
    return append(slice[:index], slice[index + 1:]...)
}
   
func main() {
    slice := []int{4, 6, 12, 45, 98, 77, 32, 5, 1, 99, 100}
 
    fmt.Println(slice)
     
    slice = RemoveByIndex(slice, 6)
 
    fmt.Println(slice)
} 
 
    
    
  
/*
run:
   
[4 6 12 45 98 77 32 5 1 99 100]
[4 6 12 45 98 77 5 1 99 100]
   
*/

 



answered Aug 17, 2020 by avibootz

Related questions

...