私はGoを学ぼうとしています。私は構造体と配列が値によってコピーされることを知っています(関数に渡すか、変数に代入するとき)。だから私たちはポインタを使ってそれらを修正し、メモリを節約します。メソッドでポインタを使用して構造体へのポインタを返すのはいつですか?
状況によっては、常に構造体へのポインタが使用されていることがあります。例えば
、an official web application tutorialに、彼らは何のデータ変更は、構造体に発生していない。ここ
func (p *Page) save() error {
filename := p.Title + ".txt"
return ioutil.WriteFile(filename, p.Body, 0600)
}
それをコードを使用していました。これは、公式パッケージやサードパーティのパッケージの他の場所で発生します。
もう1つのケースは、& struct {}を返す場合です。上記の同じリンクの例:
func loadPage(title string) *Page {
filename := title + ".txt"
body, _ := ioutil.ReadFile(filename)
return &Page{Title: title, Body: body}
}
したがって、どの場合、ポインタを使用する必要がありますか?
[なぜ返信先のコンストラクタを作成する必要がありますか?](http://stackoverflow.com/questions/31932822/why-should-constructor-of-go-return-address/31934189#31934189) – icza