Каким образом можно преобразовать срез в массив в языке Go?

В Go напрямую преобразовать срез (slice) в массив нельзя, так как массивы имеют фиксированный размер, известный во время компиляции, а срезы — динамические.

Короткий ответ

Что ответить на собеседовании

В Go напрямую преобразовать срез (slice) в массив нельзя, так как массивы имеют фиксированный размер, известный во время компиляции, а срезы — динамические.

Подробный разбор

Ответ с пояснениями

В Go напрямую преобразовать срез (slice) в массив нельзя, так как массивы имеют фиксированный размер, известный во время компиляции, а срезы — динамические.

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

slice := []int{1, 2, 3}

var array [3]int
copy(array[:], slice) // копируем элементы из среза в массив

fmt.Println(array) // [1 2 3]

Важно, чтобы длина массива совпадала с количеством копируемых элементов, иначе возможна потеря данных или паника.

Если размер массива заранее неизвестен, то преобразование невозможно, и следует работать со срезами.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку