Sobes.tech
Junior — Middle

Kaip keičiasi žemės ūkio būklė, kai ji perduodama funkcijai kaip parametras?

sobes.tech AI

Atsakymas iš AI

Go kalboje žemės ir maišos lentelės įgyvendinamos naudojant map tipą, kuris perduodamas funkcijoms nuoroda. Tai reiškia, kad perduodant map funkcijai, nėra kopijuojama pati lentelė, o nuoroda į jos vidinę duomenų struktūrą.

Dėl to, bet kokie pakeitimai, atlikti su map funkcijos viduje (pridedant, šalinant ar keičiant elementus), bus matomi ir už funkcijos ribų, nes keičiasi tas pats objektas.

Pavyzdys:

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) // Išves: map[key1:100]
}

Taip, būsenos keitimas yra tiesioginis, perduodant map funkcijai.