Sobes.tech
Junior — Middle

Aké údaje sa ukladajú do ukazovateľa vnútri štruktúry rezu?

sobes.tech AI

Odpoveď od AI

V štruktúre rezu (slice) v Go sa ukladajú tri hlavné polia:

  1. Ukazovateľ (pointer) — adresa prvého prvku poľa, na ktorý sa odkazuje rez. To nemusí byť začiatok celého poľa, ale začiatok rezu v rámci poľa.

  2. Dĺžka (length) — počet prvkov dostupných cez rez.

  3. Kapacita (capacity) — maximálny počet prvkov, ktoré môžu byť umiestnené, začínajúc od ukazovateľa, bez pridelenia novej pamäte.

Príklad štruktúry rezu (zjednodušený):

type SliceHeader struct {
    Data uintptr // ukazovateľ na prvý prvok
    Len  int     // dĺžka rezu
    Cap  int     // kapacita rezu
}

Týmto spôsobom ukazovateľ vnútri rezu ukazuje na prvý prvok rezu v základnom poli, čo umožňuje efektívnu prácu s podmnožinami bez kopírovania dát.