Sobes.tech
Junior — Middle

Kaip atskirti Go kalboje skaidinių kūrimo būdus naudojant var, make ir priskyrimus pagal indeksus arba per append?

sobes.tech AI

Atsakymas iš AI

Go kalboje, sluoksniai (slices) gali būti kuriami įvairiais būdais, kurie skiriasi inicializacija ir atminties paskirstymu:

  1. Deklaravimas naudojant var — sukuria nil-sluoksnį, kuris nerodo į jokią masyvą ir turi ilgį bei talpą 0.
var s []int // nil-sluoksnis
  1. Sluoksnio kūrimas naudojant make — paskirsto masyvą su nurodytu ilgiu ir talpa ir grąžina sluoksnį, kuris rodo į šį masyvą.
s := make([]int, 5) // sluoksnis, kurio ilgis 5, užpildytas nuliais
  1. Indeksų priskyrimas — įmanomas tik jei sluoksnis jau yra inicializuotas ir turi pakankamą ilgį.

  2. Elementų pridėjimas naudojant append — prideda elementus į sluoksnį, ir jei reikia, padidina talpą ir paskirsto naują masyvą.

s = append(s, 10) // prideda elementą 10 į sluoksnį

Taip var sukuria tuščią nil-sluoksnį, make — sluoksnį su paskirstyta atmintimi, indeksų priskyrimas reikalauja esamo ilgio, o append dinamiškai plečia sluoksnį.