Não. Os mapas são referência por padrão.
package main
import "fmt"
func mapToAnotherFunction(m map[string]int) {
m["hello"] = 3
m["world"] = 4
m["new_word"] = 5
}
func main() {
m := make(map[string]int)
m["hello"] = 1
m["world"] = 2
for key, val := range m {
fmt.Println(key, "=>", val)
}
fmt.Println("-----------------------")
mapToAnotherFunction(m)
for key, val := range m {
fmt.Println(key, "=>", val)
}
fmt.Println("-----------------------")
}
Do Golang Blog-
Os tipos de mapa são tipos de referência, como ponteiros ou fatias e, portanto, o valor de m acima é nulo; não aponta para um mapa inicializado. Um mapa nil se comporta como um mapa vazio durante a leitura, mas tentativas de gravar em um mapa nil causarão um pânico no tempo de execução; não faça isso. Para inicializar um mapa, use a função integrada make:
m = make(map[string]int)
Link do snippet de código Brinque com ele.