Sobes.tech
Middle
24

Чем слайс отличается от массива?

Компании, где спрашивали
Магнум

Ответ от нейросети

sobes.tech AI

Слайс в Go — это динамический, изменяемый по размеру «вид» на массив. Основные отличия слайса от массива:

  • Размер: массив имеет фиксированный размер, который задаётся при объявлении, например, [5]int — массив из 5 элементов. Слайс же не имеет фиксированного размера и может изменяться во время выполнения.

  • Тип: массив — это тип с размером, например, [5]int и [10]int — разные типы. Слайс — это структура, содержащая указатель на массив, длину и ёмкость.

  • Передача в функции: массив передаётся по значению (копируется), слайс — по ссылке на underlying массив.

Пример:

var arr [3]int = [3]int{1, 2, 3} // массив фиксированного размера

slice := arr[0:2] // слайс, ссылающийся на первые два элемента массива

slice = append(slice, 4) // слайс может расширяться, при необходимости создавая новый массив

Таким образом, слайс — более гибкая и удобная структура для работы с последовательностями элементов, в то время как массивы используются реже и имеют фиксированный размер.