Sobes.tech
Junior — Middle

Kako razlikovati načine kreiranja seka u Go koristeći var, make i dodeljivanje po indeksima ili putem append?

sobes.tech АИ

Одговор од АИ

U jeziku Go, seževi (slices) mogu se kreirati na različite načine, koji se razlikuju u inicijalizaciji i dodeli memorije:

  1. Deklaracija pomoću var — kreira nil-sež, koji ne pokazuje na nikakav niz i ima dužinu i kapacitet 0.
var s []int // nil-sež
  1. Kreiranje seža pomoću make — dodeljuje niz sa zadatom dužinom i kapacitetom i vraća sež koji pokazuje na taj niz.
s := make([]int, 5) // sež dužine 5, popunjen nulama
  1. Dodela po indeksima — moguća je samo ako je sež već inicijalizovan i ima dovoljnu dužinu.

  2. Dodavanje elemenata pomoću append — dodaje elemente u sež, i ako je potrebno, povećava kapacitet i dodeljuje novi niz.

s = append(s, 10) // dodaje element 10 u sež

Na ovaj način, var kreira prazan nil-sež, make — sež sa dodeljenom memorijom, dodela po indeksima zahteva postojeću dužinu, a append dinamički proširuje sež.