Sobes.tech
Junior — Middle

Hogyan különböztetjük meg a Go-ban a szeletek létrehozásának módjait var, make és index szerinti hozzárendelés vagy az append használatával?

sobes.tech MI

Válasz az MI-től

Go nyelvben a szeleteket különböző módokon lehet létrehozni, amelyek az inicializálásban és a memóriafoglalásban különböznek:

  1. var segítségével történő deklaráció — létrehoz egy nil-szeletet, amely nem mutat semmilyen tömbre, és hossza valamint kapacitása 0.
var s []int // nil-szelet
  1. make segítségével történő szeletkészítés — lefoglal egy adott hosszúságú és kapacitású tömböt, és egy olyan szeletet ad vissza, amely erre a tömbre mutat.
s := make([]int, 5) // 5 hosszú, nullákkal töltött szelet
  1. Indexek szerinti hozzárendelés — csak akkor lehetséges, ha a szelet már inicializálva van, és van elég hosszúsága.

  2. Elemek hozzáadása append-tel — hozzáad elemeket a szelethez, és szükség esetén növeli a kapacitást, illetve új tömböt foglal.

s = append(s, 10) // hozzáadja a 10-es elemet a szelethez

Így a var üres nil-szeletet hoz létre, a make egy memóriával lefoglalt szeletet, az index szerinti hozzárendelés meglévő hosszúságot igényel, az append pedig dinamikusan bővíti a szeletet.