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.