質問: こちらのブログにスライスは、関数内で変更すると呼び出し元も変わると書かれていますが、以下のコードでは変わりませんでした。 なぜでしょうか。 返り値で返すしかないのでしょうか。
回答: 今回の質問で取り上げたコードの場合、変数`objects`を呼び出し先`loadJSON`で変更したいわけですから`loadJSON(&objects, src)`のようにポインタ渡しを利用するのが良いです。 ``` package main import ( "encoding/json" "fmt" ) type Object struct { Name string `json:"name"` } func loadJSON(objects *[]Object, src []byte) error { return json.Unmarshal(src, objects) } func main() { src := []byte(`[{"name":"Taro"}, {"name":"Hanako"}]`) var objects []Object if err := loadJSON(&objects, src); err != nil { panic(err) } fmt.Println(objects) } ``` 実行例: