Sobes.tech
Junior — Middle

Как да различим начините за създаване на срез в Go с използване на var, make и присвояване по индекси или чрез append?

sobes.tech AI

Отговор от AI

В езика Go, срезовете могат да се създават по различни начини, които се различават по инициализация и разпределение на памет:

  1. Деклариране с var — създава nil-срез, който не сочи към масив и има дължина и капацитет 0.
var s []int // nil-срез
  1. Създаване на срез чрез make — разпределя масив с посочена дължина и капацитет и връща срез, който сочи към този масив.
s := make([]int, 5) // срез с дължина 5, запълнен с нули
  1. Присвояване по индекси — възможно е само ако срезът вече е инициализиран и има достатъчна дължина.

  2. Добавяне на елементи чрез append — добавя елементи към среза, и ако е необходимо, увеличава капацитета и разпределя нов масив.

s = append(s, 10) // добавя елемент 10 към среза

По този начин, var създава празен nil-срез, make — срез с разпределена памет, присвояването по индекси изисква съществуваща дължина, а append динамично разширява среза.