type myStruct struct {
mystring string
myint int
}
のような構造体を持っている場合、私は私が最初にそれを返す前に「s」が変数に格納しますので、この
func New() myStruct {
s := myStruct{}
s.mystring = "string"
s.myint = 1
return s
}
のような新しい体mystructを返す関数を持っている場合、私の関数は実際に2つのmyStruct値を1つではなく作成していますか?
もしそうなら、最初にそれを変数に保存しないようにするのが良い方法ですか?
私はわからないんだけど、私は、構文は次のようにあった覚え 'FUNC新()(S myStruct){...} 'これは結果の割り当てを行います。それはより速いかもしれません。 googleやgccgoを使っていますか? –
Google goコマンドを使用しています。その構文が同じ効果を持つかどうか、または何らかの形で問題が回避されるのであれば私は興味があります。 –
受理された答えを参照してください... 'func New()(s myStruct)'として定義すると、関数本体に入る前にコンパイラが構造体を割り当てることができます。それはjdiからの答えと同じように動作するはずです。依然としてあなたは確信が持てません。なぜなら、スペック/実装の実行が永久に変化しているからです。 –