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.