Основы Go
Теория: Слайсы из срезов
В Go есть удобная операция слайсинг (slicing), которая используется для получения поднабора элементов из среза. С помощью конструкции [:] можно указать диапазон элементов, создавая новый срез, который ссылается на тот же базовый массив. При этом операция не копирует данные, а лишь формирует новое «окно» на существующий массив.
Как работает слайсинг [:]
Синтаксис:
начало— индекс, с которого начинается срез (включительно).конец— индекс, на котором срез заканчивается (не включительно).- Если
началоне указано — берется0. - Если
конецне указан — беретсяlen(s).
Примеры
Отрезание элементов
Срезы позволяют легко отбросить первый или последний элемент:
Вложенные срезы
Так как [:] возвращает новый срез, можно использовать его в цепочках:
Важно: все срезы указывают на один и тот же базовый массив. Изменение элемента в одном срезе повлияет на другие.
Выход за пределы
Если задать границы, выходящие за пределы длины среза, будет паника времени выполнения:
Использование [:] для "удаления" элементов
В Go нет встроенной функции для удаления элементов из среза, но [:] позволяет легко получить новый срез без нужных элементов.
Удаление первого элемента
Удаление последнего элемента
Удаление диапазона элементов
Можно отбросить несколько элементов, используя append() вместе с [:]:
Конструкция [:] в таких примерах не копирует данные, а создаёт новый срез с нужным диапазоном, сохраняя общую память с исходным массивом.





