Встречается на 53% собеседований по Go

В чем разница между массивом и слайсом

Массив — это фиксированная коллекция элементов одного типа с известным размером на этапе компиляции. Размер массива — часть его типа (например, [3]int и [5]int — разные типы).

Слайс — это динамическая обёртка над массивом, которая может изменять свой размер. Слайс состоит из указателя на массив, длины (len) и ёмкости (cap).

Пример:

go
// Массив (фиксированный размер)
arr := [3]int{1, 2, 3} // тип [3]int

// Слайс (динамический)
slice := []int{1, 2, 3} // тип []int
slice = append(slice, 4) // можно расширить

Ключевые отличия:

  • Массивы имеют фиксированный размер, слайсы — нет.
  • Слайсы передаются по ссылке, массивы — по значению (копируются).
  • Слайсы поддерживают операции вроде append, copy и срезы (slice[1:3]).
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы