Senior
Фарқи байни массив ва слайс дар Go чист?
sobes.tech AI
Ҷавоб аз AI
В езика Go, масив (array) е структура с фиксиран размер, който се задава при обявяването и не може да бъде променян. Масивите съхраняват елементите последователно в паметта и при предаване към функция се копират изцяло.
Слайсът (slice) е динамичен, променлив по размер тип, който представлява препратка към последователен участък от масив. Един слайс съдържа указател към първия елемент, дължина и капацитет.
Ключови разлики:
- Размерът на масива е фиксиран, при слайса е динамичен.
- При предаване, масивът се копира, а слайсът се предава като препратка към основния масив.
- Слайсът може да бъде разширен (append), масивът — не.
Пример:
var arr [3]int = [3]int{1, 2, 3} // масив с фиксиран размер
slice := arr[0:2] // слайс, който реферира към първите два елемента на масива
slice = append(slice, 4) // слайсът се разширява, възможно е да се създаде нов основен масив
По този начин, слайсовете са полезни за работа с динамични колекции, а масивите — за фиксирани набори от данни.