ホームページ > バックエンド開発 > Golang > Go でオブジェクト参照を保持しながらマップ内の配列に値を追加するにはどうすればよいですか?

Go でオブジェクト参照を保持しながらマップ内の配列に値を追加するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-01 21:28:29
オリジナル
1011 人が閲覧しました

How do you append values to arrays within a map in Go while preserving object references?

Go でマップ内の配列に値を追加する

マップ内の配列に値を追加しようとすると、参照の設定で問題が発生する可能性があります

Go では、次のコードは Example オブジェクトに値を追加しようとします。 struct:

<code class="go">var MyMap map[string]Example 

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

package main


import (
  "fmt"
)


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

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

var MyMap map[string]Example

func main() {
   MyMap = make(map[string]Example)
   MyMap["key1"] = Oferty.AppendExample(1,"SomeText")
   fmt.Println(MyMap)
}</code>
ログイン後にコピー

ただし、このコードはいくつかの理由で正しくありません:

  • 初期化エラー: Oferty は未定義の変数です。
  • インスタンスの作成: Example のインスタンスは、サンプルに追加する前に作成する必要があります。 map.
  • マップ参照の問題: マップ MyMap には、コピーではなくサンプル インスタンスへの参照が含まれている必要があります

次の修正されたコードこれらの問題に対処します:

<code class="go">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 := &amp;Example{[]int{}, []string{}}
    obj.AppendOffer(1, "SomeText")
    MyMap = make(map[string]*Example)
    MyMap["key1"] = obj
    fmt.Println(MyMap)
}</code>
ログイン後にコピー

これは修正されましたコード:

  • マップに追加する前に Example (obj) のインスタンスが作成されます。
  • マップ MyMap には、ポインター (*Example) を使用した Example インスタンスへの参照が含まれています。
  • メソッド AppendOffer は、例の配列フィールドに値を追加するために使用されます。 instance.

これらの修正を実装することにより、コードはオブジェクト参照を保持しながら、マップ内の配列に値を正しく追加します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート