HOWTO · Go
Copiar un map en Go
Este tutorial demuestra cómo copiar un map en Golang.
En esta página
Este tutorial demuestra cómo copiar un map en Go.
Copiar un map en Go
En Go, un map es una colección de pares clave-valor no ordenados. Es popular porque permite búsquedas rápidas y valores que se pueden recuperar, actualizar o eliminar usando claves.
Debido a que los maps en Go son tipos de referencia, no puede replicar en profundidad el contenido de un map asignando una instancia a otra. Puede crear un nuevo map vacío y luego agregarle los pares clave-valor apropiados mediante un bucle for range.
En Go, es la solución más sencilla y eficiente a este problema.
El map clonado es un clon profundo en este resultado de ejemplo, y agregar piezas adicionales no afecta el map original.
Ejemplo 1:
package main
import "fmt"
func main() {
dark := map[string]int{
"Jay": 1,
"Adam": 2,
"Eve": 3,
}
// copy a map
darkch := make(map[string]int)
for k, v := range dark {
darkch[k] = v
}
darkch["Jonas"] = 4
fmt.Println("Original")
fmt.Println(dark)
fmt.Println("Copied")
fmt.Println(darkch)
}
Producción :
Original
map[Adam:2 Eve:3 Jay:1]
Copied
map[Adam:2 Eve:3 Jay:1 Jonas:4]
Asignamos el nombre y el número de rollo al map original en este ejemplo.
Ejemplo 2:
package main
import (
"fmt"
)
func main() {
studs := map[string]int{
"Jay": 1,
"Adam": 2,
"Eve": 3,
}
studs_tmp := make(map[string]int)
for name, roll_no := range studs {
studs_tmp[name] = roll_no
}
for name, roll_no := range studs_tmp {
fmt.Println("Name: ", name, ", roll_no: ", roll_no)
}
}
Producción :
Name: Jay , roll_no: 1
Name: Adam , roll_no: 2
Name: Eve , roll_no: 3