Junior — Middle
Как да различим начините за създаване на срез в Go с използване на var, make и присвояване по индекси или чрез append?
sobes.tech AI
Отговор от AI
В езика Go, срезовете могат да се създават по различни начини, които се различават по инициализация и разпределение на памет:
- Деклариране с
var— създава nil-срез, който не сочи към масив и има дължина и капацитет 0.
var s []int // nil-срез
- Създаване на срез чрез
make— разпределя масив с посочена дължина и капацитет и връща срез, който сочи към този масив.
s := make([]int, 5) // срез с дължина 5, запълнен с нули
-
Присвояване по индекси — възможно е само ако срезът вече е инициализиран и има достатъчна дължина.
-
Добавяне на елементи чрез
append— добавя елементи към среза, и ако е необходимо, увеличава капацитета и разпределя нов масив.
s = append(s, 10) // добавя елемент 10 към среза
По този начин, var създава празен nil-срез, make — срез с разпределена памет, присвояването по индекси изисква съществуваща дължина, а append динамично разширява среза.