No importa el nombre, los mapas proporcionan versatilidad, apariencia de datos rápida y eficiente, actualizaciones y eliminaciones utilizando el conjunto de claves únicas.
El enfoque principal de este tutorial es guiarlo a través de la creación y el uso de mapas en el lenguaje de programación GO.
Ir a crear mapa
Hay dos formas de crear un mapa en el lenguaje de programación GO.
Mapa literal
El primer método es usar un mapa de palabras clave seguido del tipo de datos de la clave (encerrada en los soportes cuadrados) y el tipo de datos de los valores.
Una vez que tenga el mapa definido, puede insertar el conjunto de pares de valor clave dentro de un par de aparatos ortopédicos rizados.
La sintaxis es como se muestra:
Valor de mapa [clave]
valor clave
Los mapas son muy útiles al almacenar datos relacionados, como la información del usuario. Por ejemplo, el siguiente código crea un mapa que almacena información del usuario.
user_info: = map [string] String
"ID": "1",
"Nombre": "Jonh Doe",
"Departamento": "desarrollador de juegos",
"Salario": "$ 140,000",
"País": "Bulgaria",
Tenga en cuenta que los pares de valor clave del mapa están encerrados dentro de los aparatos ortopédicos. El valor a la izquierda del colon representa la clave, mientras que el valor a la derecha representa el valor asociado.
En el ejemplo anterior, formatamos los pares de valor clave como JSON para una legibilidad más fácil; Sin embargo, puede tener una línea de una sola como:
user_info: = map [string] String
"ID": "1", "Nombre": "Jonh Doe", "Departamento": "Desarrollador de juegos", "Salario": "$ 140,000", "País": "Bulgaria",
Asegúrese de separar cada par de valores clave con una coma.
Enfoque funcional
El segundo método que puede usar para crear un mapa en GO es la función Make. Esta es una función incorporada que le permite pasar el tipo de mapa para crear. Devuelve un mapa inicializado. La sintaxis es como se muestra a continuación:
make (map [key_type] value_type)
La función devolverá un mapa vacío.
Puede asignar un mapa a una variable como otros lenguajes de programación, como se muestra en los ejemplos anteriores.
Para ver los valores clave en la matriz, puede usar el FMT.Método println como se muestra en el siguiente ejemplo:
paquete principal
importar "fmt"
func Main ()
user_info: = map [string] String
"ID": "1", "Nombre": "Jonh Doe", "Departamento": "Desarrollador de juegos", "Salario": "$ 140,000", "País": "Bulgaria",
fmt.Println ("maps:", user_info)
El código anterior debe devolver la salida como se muestra:
::producción
Mapas: Mapa [País: Departamento de Bulgaria: ID de desarrollador del juego: 1 Nombre: Jonh Doe Salario: $ 140,000]
Acceso a los elementos del mapa
Para almacenar el valor en un mapa, puede usar su clave única. Golang debe devolver el valor asociado con la clave especificada.
Por ejemplo:
fmt.Println (user_info ["nombre"])
El fragmento anterior debe devolver el valor asociado con la clave "Nombre" del mapa user_info.
La salida es como se muestra "
::producción
Jonh doe
Dado que cada clave en un mapa es único, el código anterior siempre debe devolver un valor único asociado con una clave si existe.
Por lo tanto, hacer uso de mapas es eficiente para la información relacionada.
Iteración de mapa
La siguiente pregunta llega, ¿cómo se itera sobre los elementos en un mapa?? A diferencia de otros lenguajes de programación, que proporcionan funciones incorporadas para obtener claves y valores, Go no.
Sin embargo, le permite iterar sobre un mapa utilizando el operador de rango.
Tomemos el ejemplo del mapa user_info que creamos anteriormente. Podemos usar el operador de rango para iterar sobre las teclas y los valores del mapa, como se muestra en el código de ejemplo a continuación:
para k, v: = rango user_info
fmt.Printf (" %q -> %q \ n", k, v)
En el código anterior, GO iterará sobre los elementos y devolverá cada clave y su valor asociado. Tenga en cuenta que GO creará las variables con el tipo de establecimiento. Por ejemplo, tanto la clave como el valor son cadenas; Por lo tanto, podemos usar el formateador %Q para imprimir su valor utilizando la función printf.
La salida resultante es como se muestra:
"ID" -> "1"
"Nombre" -> "Jonh Doe"
"Departamento" -> "Desarrollador de juegos"
"Salario" -> "$ 140,000"
"País" -> "Bulgaria"
¿Qué sucede cuando necesitas acceder solo a las llaves?? Puede declarar una variable para almacenar las claves y luego usar el operador de rango en dicho escenario.
Considere el ejemplo que se muestra a continuación:
claves: = [] cadena
para k: = rango user_info
claves = append (teclas, k)
fmt.Printf ("%q", claves)
En el ejemplo anterior, comenzamos definiendo una porción para almacenar las teclas del mapa. Luego usamos el operador de rango para iterar sobre las teclas y agregar cada llave al porta.
Finalmente, imprimimos las teclas usando el método printf. La salida resultante es como se muestra:
["id" "nombre" "departamento" "salario" "país"]
Aplica la misma técnica anterior para obtener los valores de un mapa.
Longitud del mapa
En Golang, puede obtener la longitud de un mapa utilizando el método LEN. Esto devuelve el número de elementos en el mapa.
Por ejemplo:
fmt.Println (len (user_info))
El número de elementos en el mapa es:
5
Agregar, actualizar, eliminar claves y valores
En Go, los mapas son mutables. Esto significa que puede agregar, eliminar o actualizar los elementos existentes en el mapa.
Veamos algunos ejemplos de cómo realizar tales operaciones.
Agregar ítem nuevo
Para agregar un nuevo elemento a un mapa, haga referencia al nombre del mapa seguido de la clave en los soportes cuadrados y un solo canto (=) para asignar un nuevo valor.
La sintaxis es como se muestra:
map_name [clave] = valor
Agregamos una nueva clave al mapa user_info como se muestra en el ejemplo a continuación:
user_info ["doB"] = "06/06/1995"
En el ejemplo anterior, agregamos un nuevo elemento llamado "DOB" al mapa user_info. Tenga en cuenta que los elementos en el mapa están desordenados. Por lo tanto, agregar un nuevo elemento no significa que aparezca como el último o primer elemento en el mapa.
Actualizar un elemento
Supongamos que necesitamos cambiar una información sobre el usuario. Por ejemplo, digamos que el usuario obtuvo un aumento (Yay!), y necesitamos actualizar la información.
Podemos usar una sintaxis similar como agregar una nueva clave. Sin embargo, hacemos referencia a una clave existente en el mapa en este caso.
Un ejemplo es como se muestra:
user_info ["Salario"] = "$ 160,000"
El código anterior debe cambiar el valor de la clave "salario" al nuevo valor especificado.
La salida resultante es como se muestra:
fmt.Println (user_info)
La salida es como se muestra:
[País: Departamento de Bulgaria: desarrollador de juegos DOB: 06/06/1995 ID: 1 Nombre: Jonh Doe Salario: $ 160,000]
Tenga en cuenta que el nuevo valor de la clave de salario se actualiza para reflejar los nuevos datos.
Sugerencia: una mejor manera de pensarlo es, si el elemento existe, actualice el valor; De lo contrario, cree un nuevo elemento.
Eliminar un artículo
Go también le permite eliminar un elemento del mapa. Usamos el método delete (), que toma dos argumentos.
El primer argumento es el nombre de la variable de mapa bajo el cual eliminar un elemento, y el segundo es la clave para eliminar.
Mire el ejemplo que se muestra a continuación:
Eliminar (user_info, "Departamento")
fmt.Println (user_info)
La función eliminará el "departamento" del mapa user_info. El mapa resultante es como se muestra:
Mapa [País: Bulgaria ID: 1 Nombre: Jonh Doe Salario: $ 140,000]
Borrar un mapa
Supongamos que desea eliminar un mapa de todos los elementos existentes? Para hacer esto, puede establecer los valores en un mapa vacío con la misma clave y tipo de valor.
Por ejemplo:
user_info = map [string] String
El ejemplo anterior debe reinicializar el mapa user_info en un mapa vacío.
Sugerencia: los mapas son una colección desordenada, y las operaciones como las iteraciones no siempre darán lugar al mismo orden de elementos. Si el pedido es una necesidad, considere otro tipo de datos.
Conclusión
En esta guía, exploramos mapas en el lenguaje de programación GO. Usando mapas, puede crear un conjunto de elementos desordenados y usar cada clave única para acceder a los elementos. Esto elimina la necesidad de índices para acceder a elementos.
Gracias por leer y regresa por más tutoriales de Go.