Mapas de Golang

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *