Как сделать из слайса массив в Go

«Как сделать из слайса массив в Go» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go можно конвертировать слайс в массив, но нужно знать точный размер массива заранее. Для этого используется приведение типов:

s := []int{1, 2, 3, 4}
arr := [4]int(s)  // конвертация слайса в массив

Важные нюансы:

  1. Размер массива должен точно совпадать с длиной слайса
  2. Если размер не совпадает - будет ошибка компиляции
  3. Массив будет копией данных слайса, изменения в одном не повлияют на другой

Пример с ошибкой:

s := []int{1, 2, 3}
arr := [4]int(s)  // ошибка: cannot convert s (type []int) to type [4]int

Для динамического случая можно использовать reflect, но это не рекомендуется в production коде.