Sobes.tech
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ů.