如果我有這樣的轉:我創造了太多的價值嗎?
type myStruct struct {
mystring string
myint int
}
一個結構,如果我有一個返回一個新MYSTRUCT這樣
func New() myStruct {
s := myStruct{}
s.mystring = "string"
s.myint = 1
return s
}
一個功能,因爲我第一次把它存儲在「S」變量返回之前,我的功能是實際製作2個myStruct值而不是一個?
如果是這樣,那麼確保我不首先將其存儲在變量中是一種更好的做法嗎?
我不知道,但我記得有一個語法像'FUNC新()(S myStruct){...}'這會爲你分配結果。這可能會更快。你使用谷歌去或gccgo? –
我正在使用Google go命令。我會好奇的,如果這種語法會有相同的效果,或者如果它以某種方式避免這個問題。 –
看到接受的答案...將其定義爲'func New()(s myStruct)'將讓編譯器在進入函數體之前爲您分配結構體。它應該和jdi的答案一樣。仍然無法確定,導致go的規格/實現正在永久改變。 –