Junior — Middle
Co znamená pro slice výchozí hodnota rovná nule a v čem spočívá její podstata?
sobes.tech AI
Odpověď od AI
V jazyce Go je řez (slice) struktura, která obsahuje ukazatel na pole, délku a kapacitu. Výchozí hodnota pro řez je nil, ale pokud je řez inicializován jako prázdný, například var s []int, jeho hodnota je nil, a délka i kapacita jsou nula.
Když se říká, že výchozí hodnota pro řez je nula, obvykle se tím myslí, že délka a kapacita řez jsou nula a že neukazuje na žádné pole.
Podstatou je, že takový řez neobsahuje žádné prvky a nezabírá paměť pro data, ale lze jej bezpečně používat, například pro přidávání prvků pomocí append.
Příklad:
var s []int // s == nil, len(s) == 0, cap(s) == 0
s = append(s, 1) // nyní s obsahuje jeden prvek
Proto je výchozí hodnota řezem prázdný řez s délkou 0, což je vhodné pro práci bez dodatečné inicializace.