Go でマップ内の配列に値を追加する
マップ内の配列に値を追加しようとすると、参照の設定で問題が発生する可能性があります
Go では、次のコードはサンプル構造体に値を追加しようとします:
<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>
ただし、このコードはいくつかの理由で正しくありません:
次の修正されたコードは、これらの問題に対処します。
<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 := &Example{[]int{}, []string{}} obj.AppendOffer(1, "SomeText") MyMap = make(map[string]*Example) MyMap["key1"] = obj fmt.Println(MyMap) }</code>
この修正されたコードでは:
これらの修正を実装することで、コードは正しく追加されます。オブジェクト参照を保持しながら、値をマップ内の配列に追加します。
以上がGo でオブジェクト参照を保持しながらマップ内の配列に値を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。