Go でマップ内の配列に値を追加するにはどうすればよいですか?

DDD
リリース: 2024-11-03 21:58:02
オリジナル
125 人が閲覧しました

How to Append Values to Arrays Within Maps in Go?

Go のマップ内に追加された配列を解明する

Go では、マップはデータを整理するための強力なツールです。ただし、これらのマップ内の配列に値を追加しようとすると、扱いが難しくなる可能性があります。仮説のシナリオを考えてみましょう。

var MyMap map[string]Example

type Example struct {
    Id []int
    Name []string
}
ログイン後にコピー

Puzzle Unveiled

このコード スニペットは、MyMap というマップ内の配列に整数と文字列を追加しようとします。ただし、この実装には重大なエラーが含まれています。

MyMap["key1"] = Offerty.AppendOffer(1, "SomeText")
ログイン後にコピー

ここでは、Offerty は定義されていないため、オブジェクトとして認識できません。これを解決するには、次に示すように、マップに関連付ける前にサンプル構造体のインスタンスを作成します。

obj := &Example{[]int{}, []string{}}
obj.AppendOffer(1, "SomeText")
ログイン後にコピー

参照、コピーではありません

さらに、コード スニペットは、サンプル構造体のコピーを作成するだけであり、それへの参照は作成しません。マップ内の構造体へのポインターを維持するには:

MyMap = make(map[string]*Example)
MyMap["key1"] = obj
ログイン後にコピー

Solution in Sight

これらの変更により、改訂されたコードはマップ内の配列に値を正常に追加します。 :

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)
}
ログイン後にコピー

このソリューションでは、マップ内の元のサンプル構造体が保存され、更新と変更が可能になります。スコープ外からの配列。

以上がGo でマップ内の配列に値を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!