"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo agregar valores a matrices dentro de mapas en Go?

¿Cómo agregar valores a matrices dentro de mapas en Go?

Publicado el 2024-11-21
Navegar:869

How to Append Values to Arrays Inside Maps in Go?

Agregar valores a matrices dentro de un mapa en Go

Cuando se trabaja con mapas en Go, manipular matrices dentro de esos mapas puede ser un desafío. Este artículo proporciona una solución al problema de agregar valores a matrices almacenadas dentro de un mapa.

Para comprender el problema, considere el siguiente código:

type Example struct {
    Id []int
    Name []string
}
var MyMap map[string]Example

Aquí, MyMap es un mapa que asigna cadenas a instancias de la estructura de ejemplo. La estructura de ejemplo contiene matrices Id y Name. El objetivo es agregar valores a estas matrices.

El intento inicial de hacer esto a menudo implica llamar a métodos en la estructura de ejemplo y pasar un receptor de puntero para acceder y modificar las matrices. Sin embargo, asignar directamente el resultado de Oferty.AppendExample(1, "SomeText") a MyMap["key1"] no funcionará porque el mapa almacena una copia de la estructura de ejemplo, no la estructura en sí.

La La solución radica en modificar el código de la siguiente manera:

package main

import "fmt"

type Example struct {
    Id []int
    Name []string
}

func (data *Example) AppendOffer(id int, name string) {
    data.Id = append(data.Id, id)
    data.Name = append(data.Name, name)
}

var MyMap map[string]*Example

func main() {
    obj := &Example{[]int{}, []string{}}
    obj.AppendOffer(1, "SomeText")
    MyMap = make(map[string]*Example)
    MyMap["key1"] = obj
    fmt.Println(MyMap)
}

Al crear una instancia de la estructura de ejemplo y almacenar una referencia a ella en el mapa (usando un tipo de puntero), podemos modificar las matrices directamente. El método AppendOffer opera en un puntero a la estructura de ejemplo, lo que nos permite agregar valores a las matrices.

Esta solución efectivamente agrega valores a las matrices dentro de la estructura de ejemplo, almacenadas en MyMap. Proporciona un enfoque claro y conciso para gestionar matrices dentro de mapas en Go.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3