Sobes.tech
Junior — Middle

Como é que o estado da tabela hash muda ao passá-la para uma função como parâmetro?

sobes.tech IA

Resposta da IA

No Go, as tabelas de hash são implementadas através do tipo map, que é passado por referência às funções. Isso significa que ao passar um map para uma função, não é a tabela em si que é copiada, mas um ponteiro para a sua estrutura de dados interna.

Como resultado, quaisquer alterações feitas ao map dentro da função (adição, remoção ou modificação de elementos) serão visíveis também fora da função, pois o mesmo objeto é alterado.

Exemplo:

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) // Vai mostrar: map[key1:100]
}

Dessa forma, o estado da tabela de hash é alterado diretamente ao passá-la para uma função.