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:
- Deklaravimas naudojant
var— sukuria nil-sluoksnį, kuris nerodo į jokią masyvą ir turi ilgį bei talpą 0.
var s []int // nil-sluoksnis
- 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
-
Indeksų priskyrimas — įmanomas tik jei sluoksnis jau yra inicializuotas ir turi pakankamą ilgį.
-
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į.