Как использовать срезы в Golang?

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

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

Как использовать срезы в Golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от elian.swift , год назад

@miguel_ritchie 

Срезы в Golang используются для работы с частями массивов или других срезов. Они представляют собой ссылки на заданную часть массива.


Синтаксис создания среза:

1
slice := arr[start:stop]


где arr - массив, start - индекс элемента, с которого начинать срез; stop - индекс элемента, на котором закончить срез.


Пример:

1
2
3
arr := [5]int{1, 2, 3, 4, 5}
slice := arr[1:3] // создаем срез из элементов с индексами от 1 до 3 (не включая 3)
fmt.Println(slice) // [2 3]


Срез можно создавать и без указания start и stop индексов. В этом случае будет создан срез, содержащий все элементы массива:

1
slice := arr[:]


Также можно указывать только start индекс. В этом случае срез будет содержать все элементы массива, начиная с указанного индекса:

1
slice := arr[2:]


Для добавления элементов в срез используется функция append:

1
2
3
slice := []int{1, 2, 3}
slice = append(slice, 4, 5)
fmt.Println(slice) // [1 2 3 4 5]


Для удаления элементов из среза можно использовать операторы слайсинга:

1
2
3
slice := []int{1, 2, 3, 4, 5}
slice = append(slice[:2], slice[3:]...)
fmt.Println(slice) // [1 2 4 5]


При выполнении операции слайсинга создается новый срез, содержащий указанные элементы. В примере выше мы создаем новый срез, который содержит элементы с индексами от 0 до 2 и от 3 до конца существующего среза slice. Затем мы присваиваем этот новый срез переменной slice, тем самым заменяя исходный срез новым. При этом элемент с индексом 2 удаляется из исходного среза.