HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>В Go есть удобная операция слайсинг (slicing), которая используется для получения поднабора элементов из среза. С помощью конструкции [:] можно указать диапазон элементов, создавая новый срез, который ссылается на тот же базовый массив. При этом операция не копирует данные, а лишь формирует новое "окно" на существующий массив.</p>
1 <p>В Go есть удобная операция слайсинг (slicing), которая используется для получения поднабора элементов из среза. С помощью конструкции [:] можно указать диапазон элементов, создавая новый срез, который ссылается на тот же базовый массив. При этом операция не копирует данные, а лишь формирует новое "окно" на существующий массив.</p>
2 <h2>Как работает слайсинг [:]</h2>
2 <h2>Как работает слайсинг [:]</h2>
3 <p>Синтаксис:</p>
3 <p>Синтаксис:</p>
4 <ul><li>начало - индекс, с которого начинается срез (включительно).</li>
4 <ul><li>начало - индекс, с которого начинается срез (включительно).</li>
5 <li>конец - индекс, на котором срез заканчивается (не включительно).</li>
5 <li>конец - индекс, на котором срез заканчивается (не включительно).</li>
6 <li>Если начало не указано - берется 0.</li>
6 <li>Если начало не указано - берется 0.</li>
7 <li>Если конец не указан - берется len(s).</li>
7 <li>Если конец не указан - берется len(s).</li>
8 </ul><h2>Примеры</h2>
8 </ul><h2>Примеры</h2>
9 <h2>Отрезание элементов</h2>
9 <h2>Отрезание элементов</h2>
10 <p>Срезы позволяют легко отбросить первый или последний элемент:</p>
10 <p>Срезы позволяют легко отбросить первый или последний элемент:</p>
11 <h2>Вложенные срезы</h2>
11 <h2>Вложенные срезы</h2>
12 <p>Так как [:] возвращает новый срез, можно использовать его в цепочках:</p>
12 <p>Так как [:] возвращает новый срез, можно использовать его в цепочках:</p>
13 <p>Важно: все срезы указывают на один и тот же базовый массив. Изменение элемента в одном срезе повлияет на другие.</p>
13 <p>Важно: все срезы указывают на один и тот же базовый массив. Изменение элемента в одном срезе повлияет на другие.</p>
14 <h2>Выход за пределы</h2>
14 <h2>Выход за пределы</h2>
15 <p>Если задать границы, выходящие за пределы длины среза, будет паника времени выполнения:</p>
15 <p>Если задать границы, выходящие за пределы длины среза, будет паника времени выполнения:</p>
16 <h2>Использование [:] для "удаления" элементов</h2>
16 <h2>Использование [:] для "удаления" элементов</h2>
17 <p>В Go нет встроенной функции для удаления элементов из среза, но [:] позволяет легко получить новый срез без нужных элементов.</p>
17 <p>В Go нет встроенной функции для удаления элементов из среза, но [:] позволяет легко получить новый срез без нужных элементов.</p>
18 <h3>Удаление первого элемента</h3>
18 <h3>Удаление первого элемента</h3>
19 <h3>Удаление последнего элемента</h3>
19 <h3>Удаление последнего элемента</h3>
20 <h3>Удаление диапазона элементов</h3>
20 <h3>Удаление диапазона элементов</h3>
21 <p>Можно отбросить несколько элементов, используя append() вместе с [:]:</p>
21 <p>Можно отбросить несколько элементов, используя append() вместе с [:]:</p>
22 <p>Конструкция [:] в таких примерах не копирует данные, а создаёт новый срез с нужным диапазоном, сохраняя общую память с исходным массивом.</p>
22 <p>Конструкция [:] в таких примерах не копирует данные, а создаёт новый срез с нужным диапазоном, сохраняя общую память с исходным массивом.</p>
23 <h2>Кратко</h2>
23 <h2>Кратко</h2>
24  
24