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