Sobes.tech
Junior — Middle

Ako sa mení stav hash tabuľky pri jej odovzdaní funkcii ako parameter?

sobes.tech AI

Odpoveď od AI

V jazyku Go sú hash tabuľky implementované pomocou typu map, ktorý sa odovzdáva funkciám odkazom. To znamená, že pri odovzdaní map do funkcie sa nekopíruje samotná tabuľka, ale ukazovateľ na jej vnútornú dátovú štruktúru.

V dôsledku toho sú všetky zmeny vykonané s map vo vnútri funkcie (pridanie, odstránenie alebo zmena prvkov) viditeľné aj mimo funkcie, pretože sa mení ten istý objekt.

Príklad:

func addEntry(m map[string]int, key string, value int) {
    m[key] = value
}

func main() {
    myMap := make(map[string]int)
    addEntry(myMap, "key1", 100)
    fmt.Println(myMap) // Vypíše: map[key1:100]
}

Týmto spôsobom sa stav hash tabuľky mení priamo pri jej odovzdaní do funkcie.