"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como acrescentar valores a matrizes dentro de mapas no Go?

Como acrescentar valores a matrizes dentro de mapas no Go?

Publicado em 2024-11-21
Navegar:344

How to Append Values to Arrays Inside Maps in Go?

Anexando valores a matrizes dentro de um mapa no Go

Ao trabalhar com mapas no Go, manipular matrizes dentro desses mapas pode ser um desafio. Este artigo fornece uma solução para o problema de anexar valores a matrizes armazenadas dentro de um mapa.

Para entender o problema, considere o seguinte código:

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

Aqui, MyMap é um mapa que mapeia strings para instâncias da estrutura de exemplo. A estrutura de exemplo contém arrays Id e Name. O objetivo é anexar valores a essas matrizes.

A tentativa inicial de fazer isso geralmente envolve chamar métodos na estrutura Exemplo e passar um receptor de ponteiro para acessar e modificar as matrizes. No entanto, atribuir diretamente o resultado de Oferty.AppendExample(1, "SomeText") a MyMap["key1"] não funcionará porque o mapa armazena uma cópia da estrutura de exemplo, não a estrutura em si.

O a solução está em modificar o código da seguinte forma:

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)
}

Ao criar uma instância da estrutura Exemplo e armazenar uma referência a ela no mapa (usando um tipo de ponteiro), podemos modificar os arrays diretamente. O método AppendOffer opera em um ponteiro para a estrutura de exemplo, permitindo-nos acrescentar valores às matrizes.

Esta solução anexa efetivamente valores às matrizes dentro da estrutura de exemplo, armazenadas no MyMap. Ele fornece uma abordagem clara e concisa para gerenciar arrays dentro de mapas em Go.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3