Junior — Middle
Jak je v programovacím jazyce prováděno rezervování paměti pro slice?
sobes.tech AI
Odpověď od AI
V jazyce Go je řez (slice) struktura, která obsahuje ukazatel na pole, délku a kapacitu. Při vytváření řezu je paměť pro prvky rezervována v poli, na které ukazuje.
Když je řez vytvořen pomocí funkce make, například make([]int, length, capacity), je alokováno pole s uvedenou kapacitou. Pokud při přidávání prvků kapacita překročí, Go automaticky alokuje nové, větší pole, zkopíruje data a aktualizuje ukazatel řezu.
Příklad:
s := make([]int, 0, 5) // řez s délkou 0 a kapacitou 5
s = append(s, 1, 2, 3) // přidání prvků
Tímto způsobem je paměť rezervována předem pro stanovenou kapacitu, což zvyšuje efektivitu při přidávání prvků.