github.com/maikovskiys/l1tasks@v0.0.0-20230927052451-6436d7687dc9/develop/dev23/main.go (about) 1 package main 2 3 import "fmt" 4 5 /* 6 Удалить i-ый элемент из слайса. 7 */ 8 const elementIndex = 3 9 10 func main() { 11 12 //#1 сохраняем порядок элементов; мутируем исходный массив 13 arr1 := []int{1, 2, 3, 4, 5, 6, 7} 14 resultV1 := deleteElementV1(arr1, elementIndex) 15 fmt.Println(resultV1) 16 17 //#2 Не сохраняем порядок элементов; мутируем исходный массив 18 arr2 := []int{1, 2, 3, 4, 5, 6, 7} 19 resultV2 := deleteElementV2(arr2, elementIndex) 20 fmt.Println(resultV2) 21 22 //#3 сохраняем порядок элементов; не изменяем исходный массив 23 arr3 := []int{1, 2, 3, 4, 5, 6, 7} 24 resultV3 := deleteElementV3(arr3, elementIndex) 25 fmt.Println(resultV3) 26 27 } 28 func deleteElementV1(arr []int, i int) []int { 29 30 return append(arr[:i], arr[i+1:]...) 31 } 32 func deleteElementV2(arr []int, i int) []int { 33 arr[i] = arr[len(arr)-1] 34 return arr[:len(arr)-1] 35 } 36 func deleteElementV3(arr []int, i int) []int { 37 newArr := make([]int, 0) 38 newArr = append(newArr, arr[:i]...) 39 return append(newArr, arr[i+1:]...) 40 }