> Для чего используется синтаксис срезов в Go (Go)
Уровень: senior · Роль: backend · Язык: Go · Категория: Технические вопросы
Компании: Ozon
Стек: Go
> Пример ответа
Синтаксис срезов (slicing) в Go используется для создания нового среза (slice) из существующего массива, среза или строки без копирования данных. Он позволяет получить подмножество элементов, задавая начальный и конечный индексы, а также опциональную ёмкость. Основные применения:
- Извлечение подстроки или подмассива - например,
s[1:4]вернёт элементы с индексами 1, 2, 3. - Эффективная работа с памятью - новый срез ссылается на тот же базовый массив, поэтому операция выполняется за O(1) и не требует выделения новой памяти.
- Управление ёмкостью - трёхиндексная форма
s[low:high:max]позволяет ограничить ёмкость результирующего среза, предотвращая случайное расширение за пределы исходных данных. - Итерация и модификация - срезы часто используются в циклах для обработки части коллекции, например,
for _, v := range arr[2:5].
Пример:
GOarr := []int{0, 1, 2, 3, 4, 5}sub := arr[1:4] // [1, 2, 3]sub[0] = 10 // изменяет и arr[1] = 10
Важно помнить, что срезы - это ссылочные типы, и изменения в полученном срезе влияют на исходные данные, если не используется копирование через copy().
> Похожие задачи по Go
В каких случаях лучше использовать брокер сообщений для взаимодействия между сервисами
Зачем создавать слайс с длиной и емкостью вместо использования append в Go
Как работает алгоритм генерации уникальных чисел с генератором и map в Go
Какая основная идея воркерпула?
> Похожие задачи по backend
В каких случаях лучше использовать брокер сообщений для взаимодействия между сервисами
Зачем создавать слайс с длиной и емкостью вместо использования append в Go
Как работает алгоритм генерации уникальных чисел с генератором и map в Go
Какая основная идея воркерпула?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью