«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как добавить значения в массивы внутри карт в Go?

Как добавить значения в массивы внутри карт в Go?

Опубликовано 21 ноября 2024 г.
Просматривать:816

How to Append Values to Arrays Inside Maps in Go?

Добавление значений к массивам внутри карты в Go

При работе с картами в Go манипулирование массивами внутри этих карт может оказаться сложной задачей. В этой статье представлено решение проблемы добавления значений в массивы, хранящиеся внутри карты.

Чтобы понять проблему, рассмотрите следующий код:

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

Здесь MyMap — это карта, которая сопоставляет строки с экземплярами структуры примера. Структура примера содержит массивы Id и Name. Цель состоит в том, чтобы добавить значения в эти массивы.

Первоначальная попытка сделать это часто включает вызов методов в структуре примера и передачу приемника указателя для доступа и изменения массивов. Однако прямое присвоение результата Oferty.AppendExample(1, "SomeText") MyMap["key1"] не будет работать, поскольку карта хранит копию структуры примера, а не саму структуру.

The решение заключается в изменении кода следующим образом:

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

Создавая экземпляр структуры примера и сохраняя ссылку на него на карте (используя тип указателя), мы можем напрямую изменять массивы. Метод AppendOffer работает с указателем на структуру примера, позволяя нам добавлять значения в массивы.

Это решение эффективно добавляет значения к массивам в структуре примера, хранящимся в MyMap. Он обеспечивает четкий и лаконичный подход к управлению массивами внутри карт в Go.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3