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>
ただし、このコードはいくつかの理由で正しくありません:
次の修正されたコードこれらの問題に対処します:
<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 サイトの他の関連記事を参照してください。