filmov
tv
Уроки Golang с нуля /#17 - Срезы
Показать описание
В Go срезы (slices) представляют собой динамически изменяемые последовательности элементов одного типа. Они являются более гибкой альтернативой массивам и позволяют удобно обрабатывать изменяемые коллекции данных.
Синтаксис создания среза выглядит следующим образом:
```
slice := []тип{элемент1, элемент2, ...}
```
где `тип` - тип элементов среза, а `{элемент1, элемент2, ...}` - список элементов, из которых будет создан срез.
Срезы могут быть созданы из существующих массивов, других срезов или с помощью встроенной функции `make`. Для создания среза из массива можно указать диапазон индексов, например:
```
array := [5]int{1, 2, 3, 4, 5}
slice := array[1:4] // создание среза [2, 3, 4]
```
В данном примере `slice` будет содержать элементы с индексами от 1 до 3 (включая 1 и не включая 4) массива `array`.
Основные операции со срезами включают доступ к элементам, изменение размера, добавление элементов, копирование срезов и проверку их длины и емкости.
Срезы в Go также поддерживают механизм растущей емкости (capacity), который позволяет изменять размер среза, сохраняя уже имеющиеся элементы. Это позволяет избежать копирования данных при добавлении новых элементов в срез.
Срезы в Go являются ссылочными типами, поэтому при передаче среза в функцию происходит передача по ссылке, а не по значению. Это означает, что изменения в срезе внутри функции также отразятся на исходном срезе.
В целом, срезы в Go предоставляют мощный и эффективный инструмент для работы с коллекциями данных, и их использование является обычной практикой при разработке программ на этом языке.
Комментарии