オブジェクトを "ビルド"する最良の方法は何ですか?golang:ポインタを返すか参照を渡す
レメにはいくつかのコードを記述します。
type Car struct {
Wheels int
Doors int
}
この車は何らかの形で、どこかに保存されています。だから私のインターフェイスは、
func (s Store) GetCar() *Car
のタイプのものでなければならないか、私はそれ
func (s Store) GetCar(*Car)
作り、変数への参照を渡す必要がありますか?
私はある種の経験則を探しています。
ありがとうございます!
Cのような戻り値が関数引数のポインタとして渡されることが多い言語と比較していますか? Goには複数の戻り値と安全なポインタエスケープ解析があるので、通常これを行う理由はありません。 – JimB
利用可能な既存のGoコーパスを読んだら、「出力パラメータ」スタイル(2番目の例)がGoでは使用されないことがわかります。 – Adrian
標準ライブラリ(Goコードの記述方法のリファレンスとして)では、 'func(Store)GetCar(* Car)'という形式のAPIを見ましたか?ほとんどどこにもない。それはあなたの質問に答えるはずです。 (nitpickersについて:はい、いくつかの低レベル関数は、割り当てを減らすためにそのようなAPIを公開しています。) – Volker