Sobes.tech
Junior — Middle

Kā mainās haštabulas stāvoklis, kad to nodod funkcijai kā parametrs?

sobes.tech AI

Atbilde no AI

Go valodā hash tabulas tiek īstenotas ar map tipu, kas tiek nodots funkcijām pa atsauci. Tas nozīmē, ka, nododot map funkcijai, netiek kopēta pati tabula, bet norāde uz tās iekšējo datu struktūru.

Rezultātā, jebkādas izmaiņas, kas veiktas ar map funkcijas iekšienē (pievienošana, dzēšana vai elementu maiņa), būs redzamas arī ārpus tās, jo tiek mainīts tas pats objekts.

Piemērs:

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) // Izvadīs: map[key1:100]
}

Tādējādi, hash tabulas stāvoklis tiek mainīts tieši, nododot to funkcijai.