En el lenguaje Go, un mapa es una estructura de datos poderosa, ingeniosa y versátil. Golang Maps es una colección de pares desordenados de clave-valor. Es ampliamente utilizado porque proporciona búsquedas rápidas y valores que pueden recuperarse, actualizarse o eliminarse con la ayuda de claves.
- Es una referencia a una tabla hash.
- Debido a su tipo de referencia, es económico pasar, por ejemplo, para una máquina de 64 bits se necesitan 8 bytes y para una máquina de 32 bits se necesitan 4 bytes.
- En los mapas, una clave debe ser única y siempre del tipo que sea comparable usando el operador == o del tipo que admita el operador != . Por lo tanto, la mayor parte del tipo incorporado se puede usar como una clave como int, float64, rune, string, array y estructura comparables, puntero, etc. no son comparables no utilizar como clave de mapa.
- En los mapas, los valores no son únicos como las claves y pueden ser de cualquier tipo como int, float64, rune, string, pointer, tipo de referencia, tipo de mapa, etc.
- El tipo de claves y el tipo de valores deben ser del mismo tipo, no se permiten diferentes tipos de claves y valores en los mismos mapas. Pero el tipo de clave y los valores de tipo pueden diferir.
- El mapa también se conoce como mapa hash, tabla hash, mapa desordenado, diccionario o array asociativa.
- En los mapas, solo puede agregar valor cuando el mapa se inicializa si intenta agregar valor en el mapa no inicializado, entonces el compilador arrojará un error.
¿Cómo crear e inicializar mapas?
En el lenguaje Go, los mapas se pueden crear e inicializar de dos maneras diferentes:
Go
// Go program to illustrate how to // create and initialize maps package main import "fmt" func main() { // Creating and initializing empty map // Using var keyword var map_1 map[int]int // Checking if the map is nil or not if map_1 == nil { fmt.Println("True") } else { fmt.Println("False") } // Creating and initializing a map // Using shorthand declaration and // using map literals map_2 := map[int]string{ 90: "Dog", 91: "Cat", 92: "Cow", 93: "Bird", 94: "Rabbit", } fmt.Println("Map-2: ", map_2) }
Go
// Go program to illustrate how to // create and initialize a map // Using make() function package main import "fmt" func main() { // Creating a map // Using make() function var My_map = make(map[float64]string) fmt.Println(My_map) // As we already know that make() function // always returns a map which is initialized // So, we can add values in it My_map[1.3] = "Rohit" My_map[1.5] = "Sumit" fmt.Println(My_map) }
Go
// Go program to illustrate how // to iterate the map using for // rang loop package main import "fmt" // Main function func main() { // Creating and initializing a map m_a_p := map[int]string{ 90: "Dog", 91: "Cat", 92: "Cow", 93: "Bird", 94: "Rabbit", } // Iterating map using for rang loop for id, pet := range m_a_p { fmt.Println(id, pet) } }
Go
// Go program to illustrate how to add // a key-value pair in the map using // make() function package main import "fmt" // Main function func main() { // Creating and initializing a map m_a_p := map[int]string{ 90: "Dog", 91: "Cat", 92: "Cow", 93: "Bird", 94: "Rabbit", } fmt.Println("Original map: ", m_a_p) // Adding new key-value pairs in the map m_a_p[95] = "Parrot" m_a_p[96] = "Crow" fmt.Println("Map after adding new key-value pair:\n", m_a_p) // Updating values of the map m_a_p[91] = "PIG" m_a_p[93] = "DONKEY" fmt.Println("\nMap after updating values of the map:\n", m_a_p) }
Go
// Go program to illustrate how to // retrieve the value of the key package main import "fmt" // Main function func main() { // Creating and initializing a map m_a_p := map[int]string{ 90: "Dog", 91: "Cat", 92: "Cow", 93: "Bird", 94: "Rabbit", } fmt.Println("Original map: ", m_a_p) // Retrieving values with the help of keys value_1 := m_a_p[90] value_2 := m_a_p[93] fmt.Println("Value of key[90]: ", value_1) fmt.Println("Value of key[93]: ", value_2) }
Go
// Go program to illustrate how to // check the key is available or not package main import "fmt" // Main function func main() { // Creating and initializing a map m_a_p := map[int]string{ 90: "Dog", 91: "Cat", 92: "Cow", 93: "Bird", 94: "Rabbit", } fmt.Println("Original map: ", m_a_p) // Checking the key is available // or not in the m_a_p map pet_name, ok := m_a_p[90] fmt.Println("\nKey present or not:", ok) fmt.Println("Value:", pet_name) // Using blank identifier _, ok1 := m_a_p[92] fmt.Println("\nKey present or not:", ok1) }
Go
// Go program to illustrate how to delete a key package main import "fmt" // Main function func main() { // Creating and initializing a map m_a_p := map[int]string{ 90: "Dog", 91: "Cat", 92: "Cow", 93: "Bird", 94: "Rabbit", } fmt.Println("Original map: ", m_a_p) // Deleting keys // Using delete function delete(m_a_p, 90) delete(m_a_p, 93) fmt.Println("Map after deletion: ", m_a_p) }
Go
// Go program to illustrate the // modification concept in map package main import "fmt" // Main function func main() { // Creating and initializing a map m_a_p := map[int]string{ 90: "Dog", 91: "Cat", 92: "Cow", 93: "Bird", 94: "Rabbit", } fmt.Println("Original map: ", m_a_p) // Assigned the map into a new variable new_map := m_a_p // Perform modification in new_map new_map[96] = "Parrot" new_map[98] = "Pig" // Display after modification fmt.Println("New map: ", new_map) fmt.Println("\nModification done in old map:\n", m_a_p) }
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA