Sobes.tech
Junior — Middle

Hogyan változik a hash-tábla állapota, amikor paraméterként átadjuk egy függvénynek?

sobes.tech MI

Válasz az MI-től

Go-ban a hash-táblák a map típuson keresztül vannak megvalósítva, amelyet referenciaként adnak át a függvényeknek. Ez azt jelenti, hogy amikor egy map-et átadunk egy függvénynek, nem a táblát másolják, hanem egy mutatót a belső adatstruktúrájára.

Ennek eredményeként minden módosítás, amit a függvényen belül végrehajtunk a map-en (hozzáadás, törlés vagy elemek módosítása), kívülről is látható lesz, mivel ugyanaz a objektum változik.

Példa:

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) // Kiírja: map[key1:100]
}

Így a hash-tábla állapota közvetlenül módosul, amikor átadjuk egy függvénynek.